HD-ACM算法专攻系列(16)——find your present
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HD-ACM算法专攻系列(16)——find your present 相关的知识,希望对你有一定的参考价值。
题目描述:
源码:
#include"iostream" #include"string" using namespace std; bool IsFirstHalf(string *strs, int n, string str) { int count = 0; for(int i = 0; i < n; i++) { if(str < strs[i])count++; } return count >= (n / 2 + n % 2); } int main() { int n, count[100], counts[5]; string **strs; strs = new string*[5]; for(int i = 0; i < 5; i++) { strs[i] = new string[100]; } while(cin>>n) { if(n < 0)break; counts[1] = counts[2] = counts[3] = counts[4] = 0; for(int i = 0; i < n; i++) { cin>>count[i]>>strs[0][i]; if(count[i] > 0 && count[i] < 5) { strs[count[i]][counts[count[i]]++] = strs[0][i]; } } for(int i = 0; i < n; i++) { switch(count[i]) { case 5: cout<<100<<endl; break; case 0: cout<<50<<endl; break; default: if(IsFirstHalf(strs[count[i]], counts[count[i]], strs[0][i])) { cout<<55 + 10 * count[i]<<endl; } else { cout<<50 + 10 * count[i]<<endl; } break; } } cout<<endl; } return 0; }
以上是关于HD-ACM算法专攻系列(16)——find your present 的主要内容,如果未能解决你的问题,请参考以下文章
HD-ACM算法专攻系列(14)——find your present