题目:http://codeforces.com/problemset/problem/254/A
给出n个数据,如果能分为2n对数据,每对数据相同 则输出这n对数据的标号 否则输出-1
思路:这题一开始是暴力法...果然超时
然后看到1 ≤ ai ≤ 5000 于是开了一个a[5000]的数组
#include#include using namespace std;int a[5000];int pairs[1000000][2];int main(){ int counter=0; freopen("input.txt","r",stdin); freopen("output.txt","w",stdout); int n; cin >> n; int possible=1; for(int i=0;i<2*n;i++) { int temp; cin >> temp; if(a[temp]<=0) a[temp]=i+1; else { pairs[counter][0]=a[temp]; pairs[counter][1]=i+1; counter++; a[temp]=0; } } for(int i=0;i<5000;i++) { if(a[i]>0) possible=0; } if(possible) { for(int i=0;i