Pagini recente » Cod sursa (job #2705065) | Cod sursa (job #947186)
Cod sursa(job #947186)
#include<fstream>
#include<algorithm>
using namespace std ;
ifstream fin("curcubeu.in");
ofstream fout("curcubeu.out");
#define maxn 1000001
int n ;
int a[maxn], b[maxn], c[maxn] ;
int sol[maxn] ;
int unde[maxn] ;
void citire()
{
fin >> n ;
fin >> a[1] >> b[1] >> c[1] ;
unde[1] = 1 ;
for(int i = 2; i < n; ++i )
{
a[i] = ( ( long long ) a[ i - 1 ] * i ) % n ;
b[i] = ( ( long long ) b[ i - 1 ] * i ) % n ;
c[i] = ( ( long long ) c[ i - 1 ] * i ) % n ;
unde[i] = i ;
}
}
void rezolvare()
{
for(int i = n - 1; i >= 1; --i )
{
int ind = min( a[i], b[i] ) ;
while( ind <= max( a[i], b[i] ) )
{
if( sol[ind] == 0 )
{
sol[ind] = c[i] ;
unde[ind] = b[i] + 1 ;
++ind ;
}
else
{
int aux = unde[ind] ;
unde[ind] = b[i] + 1 ;
ind = aux ;
}
}
}
}
void afisare()
{
for(int i = 1; i < n; ++i )
fout << sol[i] << "\n" ;
}
int main()
{
citire() ;
rezolvare() ;
afisare() ;
return 0 ;
}