Pagini recente » Cod sursa (job #2620097) | Clasament simulare_oni_2007_z1 | Cod sursa (job #622752) | Cod sursa (job #1596286) | Cod sursa (job #2351438)
#include <fstream>
#include <set>
#include <iomanip>
using namespace std;
ifstream cin("curcubeu.in");
ofstream cout("curcubeu.out");
typedef long long ll;
const int N=(int)1e6+7;
int n;
int a[N];
int b[N];
int c[N];
set<int>s;
int ugar[N];
int main()
{
cin>>n;
cin>>a[1]>>b[1]>>c[1];
for(int i=2;i<n;i++)
{
a[i]=a[i-1]*(ll)i%n;
b[i]=b[i-1]*(ll)i%n;
c[i]=c[i-1]*(ll)i%n;
}
for(int i=1;i<n;i++)
{
if(a[i]>b[i])
{
swap(a[i],b[i]);
}
}
for(int i=1;i<n;i++)
{
s.insert(i);
}
for(int i=n-1;i>=1;i--)
{
int st=a[i];
int dr=b[i];
int kol=c[i];
while(s.size()>0)
{
auto it=s.lower_bound(st);
if(it==s.end()) break;
if(*it>dr) break;
ugar[*it]=kol;
s.erase(it);
}
}
for(int i=1;i<n;i++)
{
cout<<ugar[i]<<"\n";
}
return 0;
for(int i=1;i<n;i++)
{
cout<<a[i]<<" "<<b[i]<<" "<<c[i]<<"\n";
}
return 0;
}