UVA 340
来源:互联网 发布:mysql 时间戳 编辑:程序博客网 时间:2024/05/16 11:08
题目大意:判断与第一行对比。竖下来的同位置上相同的数有几个,除去相同的数,剩下的数有有几个一一对应相等。
解题思路:同位置相同的数直接循环判断。剩下的数扔到另外的数组,并排序,两个循环判断。如果第一行剩下来的数比下行剩下来的数大,之后的里面的循环下标变大,相等时,里面的循环下标也变大。否则会出现重复计算,就不是一一对应了。
ac代码:
#include <iostream>#include <algorithm>using namespace std;int main(){int n, a[2][1005], b[2][1005];int temp1, temp2, len, k, count=1;while (scanf("%d", &n)!=EOF && n){printf("Game %d:\n", count);for (int i=0; i<n; i++)scanf("%d", &a[0][i]);while (scanf("%d", &a[1][0])){temp1 = temp2 = len = k = 0;for (int i=1; i<n; i++)scanf("%d", &a[1][i]);if (a[1][0] == 0)break;for (int i=0, j=0; i<n; i++)if (a[0][i] == a[1][i])temp1++;else{b[0][j] = a[0][i];b[1][j++] = a[1][i];len++;}sort(b[0], b[0]+len);sort(b[1], b[1]+len);for (int i=0; i<len; i++)for (int j=k; j<len; j++){if (b[0][i] > b[1][j])k = j+1;else if (b[0][i] == b[1][j]){temp2++;k = j+1;break;}else break;}printf(" (%d,%d)\n", temp1, temp2);}count++;}return 0; }
阅读全文
0 0
- UVA 340
- uva 340
- UVa-340
- uva-340
- uva 340
- UVA 340
- uva 340
- UVA-340
- UVA 340
- uva 340
- UVA 340
- UVA 340 (13.07.27)
- uva——340
- UVA - 340 - Mind Hints
- uva 340(检索)
- UVa 340 模拟
- (UVA)340
- uva
- Redhat 6.5 使用rpm安装vlc
- UVA 10494
- BMC ipmitool 对linux服务器进行IPMI管理
- 通过AsyncTask下载网络图片
- BZOJ1176: [Balkan2007]Mokia(CDQ分治)
- UVA 340
- about keil
- UVA 152
- Oracle异常汇总
- UVA 299
- 创建一个 Spring 应用程序的步骤
- python 错误日志
- awk使用常用命令
- 找出3值中最大的值,用最少的代码实现