Uva - 1610 - Party Games
2015-06-22 20:27
369 查看
细节题目,排序之后拿中间的两个比较,比较麻烦,注意每种可能性,调试了好久,WA了好几次。
AC代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cctype> #include <cstring> #include <string> #include <sstream> #include <vector> #include <set> #include <map> #include <algorithm> #include <stack> #include <queue> #include <bitset> #include <cassert> #include <cmath> #include <functional> using namespace std; const int maxn = 1010; string s[maxn]; void solve(int a1, int a2) { char ans[100]; int len1 = s[a1].size(); int len2 = s[a2].size(); if (len1 < len2) { int t = 0; for (int i = 0; i < len1; i++) { if (i == len1 - 1) { ans[t++] = s[a1][i]; break; }//刚开始忽略 if (s[a1][i] == s[a2][i]) { ans[t++] = s[a1][i]; } if (s[a1][i] != s[a2][i]) { ans[t++] = s[a1][i] + 1; break; } } for (int i = 0; i < t; i++) { cout << ans[i]; } } else { int t = 0; for (int i = 0; i < len2; i++) { if (s[a1][i] == s[a2][i]) { ans[t++] = s[a1][i]; } if (s[a1][i] != s[a2][i]) { if (i != len2 - 1) { ans[t++] = s[a1][i] + 1; break; } else { if (i == len1 - 1) { //刚开始忽略 ans[t++] = s[a1][i]; break; } char ch1 = s[a1][i] + 1; if (s[a2][i] != ch1) { ans[t++] = ch1; break; } else { ans[t++] = s[a1][i]; for (int j = i + 1; j < len1; j++) { if (j == len1 - 1) { ans[t++] = s[a1][j]; break; } if (s[a1][j] != 'Z') { ans[t++] = s[a1][j] + 1; break; } else { ans[t++] = s[a1][j]; } } for (int k = 0; k < t; k++) { cout << ans[k]; } return; } } } } for (int i = 0; i < t; i++) { cout << ans[i]; } return; } } int main() { int n; while (cin >> n) { if (n == 0) break; for (int i = 0; i < n; i++) { cin >> s[i]; } sort(s, s + n); int a1 = (n - 1) / 2; int a2 = a1 + 1; solve(a1, a2); cout << endl; } return 0; }
相关文章推荐
- OJ第二批——Problem A:C++类实现最大数的输出
- Uva - 1610 - Party Games
- Matlab曲面拟合和插值
- Dissimilarity Measure(相异性测度)
- 工作“触雷”经历与总结--记博弈论的应用
- 二维数组环求最大子数组
- 深入浅出Hadoop实战开发
- 字符集和字符集编码杂谈系列之我见
- xcode6 新建项目真机调试无法全屏
- 揭开正则表达式的神秘面纱
- 第17章 输入输出和文件
- 24.计算平均值并按规定排列
- js数组学习整理
- leetcode - Valid Palindrome
- 样本方差:为嘛分母是n-1
- C实现 LeetCode->Partition List(双指针大法)(单链表)
- 第14章 C++代码重用
- js中的this
- 软件绩效评分
- Python简单对文件进行读写操作