首页 > 代码库 > HD-ACM算法专攻系列(16)——find your present (2)
HD-ACM算法专攻系列(16)——find your present (2)
题目描述:
源码:
#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 (2)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。