Card2
#include<stdio.h> #include<stdlib.h> //int test(int data[999]) //{ // // for(int i=0;i<25;i++) // book[i]=0; // for(int i=0;i<999;i++) // book[data[i]]++; // for(int i=12;i>=1;i--) // { // while(book[i]>=2&&book[2*i]>=1) // { // book[i]=book[i]-2; // book[2*i]--; // } // } // for(int i=1;i<=24;i++) // { // ans=ans+i*book[i]; // } // return ans; //} //int test(int data[999]) //{ // int ans = 0; // int times[25]; // for(int i=0;i<25;i++) // times[i] = 0; // // for(int i=0;i<999;i++) // times[data[i]]++; // // for(int i=12;i>=1;i--) // { // while(times[i]>=2&×[2*i]>=1) // { // times[i] -= 2; // times[2*i]--; // } // } // for(int i=1;i<25;i++) // ans = ans + times[i]*i; // return ans; //} int test(int data[999]) { int ans = 0; int times[25]; for(int i=0;i<25;i++) times[i] = 0; for(int i=0;i<999;i++) times[data[i]]++; for(int i=12;i>=1;i--) { while(times[i]>=2&×[2*i]>=1) { times[i] -= 2; times[2*i]--; } } for(int i=1;i<25;i++) { ans = ans + i * times[i]; } return ans; } void build(int data[999]){ for(int i=0;i<999;i++) data[i]=rand()%24+1; } void main(){ int data[999]; for(int l=0;l<10;l++){ build(data); printf("%d\n",test(data)); } }