Pagini recente » Cod sursa (job #589911) | Cod sursa (job #2148028) | Cod sursa (job #1118023) | Cod sursa (job #1328308) | Cod sursa (job #947182)
Cod sursa(job #947182)
#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] ;
if( a[1] > b[1] )
swap( a[1], b[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 ;
if( a[i] > b[i] )
swap( a[i], b[i] ) ;
}
}
void rezolvare()
{
for(int i = n - 1; i >= 1; --i )
{
int ind = a[i] ;
while( ind <= b[i] )
{
if( sol[ind] == 0 )
{
sol[ind] = c[i] ;
unde[ind] = b[i] + 1 ;
++ind ;
}
else
ind = unde[ind] ;
}
}
}
void afisare()
{
for(int i = 1; i < n; ++i )
fout << sol[i] << "\n" ;
}
int main()
{
citire() ;
//rezolvare() ;
//afisare() ;
return 0 ;
}