Cod sursa(job #864751)

Utilizator dariusdariusMarian Darius dariusdarius Data 25 ianuarie 2013 18:26:56
Problema Congr Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<fstream>
using namespace std;
struct Mystruct {int nr,i;} v[600005];
int l[600005];
int main()
{
    ifstream cin("congr.in");
    ofstream cout("congr.out");
    int i,j,p,n,st,dr,k,s;
    cin>>p;
    n=p*2-1;
    for(i=1;i<=n;i++)
    {
        cin>>v[i].nr;
        v[i].i=i;
    }
    for(i=1;i<=n;i++) v[i].nr%=p;
    while(1)
    {
        random_shuffle(v+1,v+n+1);
        st=1,dr=0,k=0,s=0;
        while(st<=p)
            if(dr-st+1==p)
            {
                l[++k]=s;
                s=(s-v[st++].nr+v[++dr].nr+p)%p;
            }
            else
                s=(s+v[++dr].nr)%p;
        for(i=1;i<=p;i++)
            if(l[i]==0)
            {
                for(j=i;j<=p+i-1;j++)
                    cout<<v[j].i<<" ";
                return 0;
            }
    }
    return 0;
}