来自:USACO2011年12月份月赛铜牌第二题
挖了以前的题目,是一道典型的阅读题+找规律+排序。
题意非常之难理解,说FarmerJohn居然拍了五张照片,每张表示初始化牛位置的移动后的状态。然后求出FJ这五头牛初始化的样子。
只需要弄清楚不管牛怎么移动,她们的相对位置差是不会变的!所以利用这一点写个comp函数排序即可!上代码:
#include<iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#define PHOTO 5
using namespace std;
intphoto[PHOTO][20005], n;
boolCompare (int A, int B) {
int record = 0;
for (int i = 0; i < PHOTO; i++)
record += photo[i][A] > photo[i][B] ? 1 : 0;
return record > 2 ? true : false;
}
int main () {
intans[20005];
freopen("IN.txt", "r", stdin);
freopen("OUT.txt", "w", stdout);
scanf ("%d",&n);
for (int i =0; i < n; i++)
ans[i] = i;
for (int i =0; i < PHOTO; i++)
for (int j = 0; j < n; j++) {
int tmp;
scanf ("%d", &tmp);
photo[i][tmp-1] = j;
}
sort (ans,ans+n, Compare);
for (int i =n-1; i >= 0; i--)
printf ("%dn", ans[i]+1);
//system("pause");
return0;
}
For NOIP 2013 Rp++ !