Mai intai trebuie sa te autentifici.
Cod sursa(job #2005622)
Utilizator | Data | 27 iulie 2017 17:20:35 | |
---|---|---|---|
Problema | Curcubeu | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 1.01 kb |
#include<fstream>
#include<iostream>
#include<vector>
#include<set>
#define DN 1000005
using namespace std;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
vector<pair<int,int> >st[DN];
vector<pair<int,int> >dr[DN];
multiset<pair<int,int>,greater<pair<int,int> > >s;
int n,a,b,c,v;
int main()
{
fin>>n>>a>>b>>c;
for(int i=1;i<n;i++)
{
a=(a*i)%n;
b=(b*i)%n;
c=(c*i)%n;
st[a].push_back(make_pair(i,c));
dr[b].push_back(make_pair(i,c));
}
for(int i=1;i<n;i++)
{
for(int j=0;j<st[i].size();j++)
{
int d=st[i][j].first;
int f=st[i][j].second;
s.insert(make_pair(d,f));
}
if(s.empty())
v=0;
else
v=s.begin()->second;
fout<<v<<'\n';
for(int j=0;j<dr[i].size();j++)
{
int d=dr[i][j].first;
int f=dr[i][j].second;
s.erase(s.find(make_pair(d,f)));
}
}
}