Pagini recente » Cod sursa (job #3236774) | Cod sursa (job #1240384) | Cod sursa (job #1451883) | Cod sursa (job #705003) | Cod sursa (job #930707)
Cod sursa(job #930707)
#include <fstream>
#include <cstdlib>
#include <string>
#include <ctime>
#define N 600010
using namespace std;
int p,i,A[N];
int rez[N];
int st,dr,nou,n;
long long s=0;
string linie;
ifstream f("congr.in");
ofstream g("congr.out");
void schimba()
{
int aux;
aux=A[st];
A[st]=A[dr];
A[dr]=aux;
aux=rez[st];
rez[st]=rez[dr];
rez[dr]=aux;
}
int main()
{
f>>p;
getline(f,linie);
getline(f,linie);
n=0;
for (i=0;i<linie.size();++i)
if (linie[i]>='0' && linie[i]<='9')
{
nou=0;
while (linie[i]>='0' && linie[i]<='9')
{
nou=nou*10+linie[i]-'0';
++i;
}
A[++n]=nou;
if (n<=p)
s+=nou;
rez[n]=n;
}
while (s%p!=0)
{
st=rand()%p+1;
dr=rand()%(p-1)+p+1;
s=s+(A[dr]-A[st]);
schimba();
}
for (i=1;i<=p;++i)
g<<rez[i]<<" ";
f.close();
g.close();
return 0;
}