Pagini recente »
Istoria paginii runda/2018-12-20-clasa-6-tema-14
|
2022-02-24-clasa-6-concurs11-cursuri-performanta
|
Seb
|
Istoria paginii runda/s7_9g
|
Cod sursă (job #600901)
Cod sursă (job
#600901)
/*#include <bits/stdc++.h>
using namespace std;
int v[ 10001 ];
int cv[ 10001 ];
int main()
{
ifstream cin ("ruleta1.in");
ofstream cout ("ruleta1.out");
int n;
cin >> n;
for( int i = 1; i <= n; i++ )
{
cin >> v[i];
}
int flag = true;
int cnt = 0,ans = 0;
while(flag == true)
{
for ( int i = 1; i <= n; i++)
cv[i] = v[i];
for( int i = 1;i <= n; i++ )
{
if( v[i - 1] <= v[i])
v[i] -= v[i-1];
}
if( v[n] <= v[1] )
v[n] -= v[1];
flag = false;
for ( int i = 1; i <= n; i++ )
{
if( v[i] != cv[i] )
flag = true;
}
ans++;
}
for( int i = 1; i <= n; i++)
cnt += (v[i] != 0);
cout << ans + 1 << " " <<cnt;
}
*/
/*
#include <bits/stdc++.h>
using namespace std;
int v[ 10001];
int poz [ 10001 ];
int main()
{
int n;
int z = 0;
cin >> n;
for( int i = 1;i <= n;i++ )
{
cin >> v[i];
poz[i] = i;
}
bool flag = true;
int k;
poz[n] = 1; k = n;
int i = 0;
while( flag == true )
{
if( poz[i] == (i + 1)%n)
{
if( v[poz[i]] >= v[i] and v[i] )
{
v[poz[i]] = v[ poz[i] ]- v[i];
int ok = 1;
if ( v[poz[i]] + z == 0)
{
k = i;
z = 1;
}
else if( v[i] <= v[poz[i]] )
{
poz[k] = i;
z = 0;
k = n;
}
}
}
if( u[i] < i)
{
r++;
if( !ok )
{
flag = false;
}
else
ok = 0;
}
i = paz[i];
}
int ans = 0;
for ( int i = 1; i <= n; i ++ )
{
ans += (v[i] != 0);
}
cout << r << " " << ans;
}*/
#include <fstream>
using namespace std;
ifstream cin("ruleta1.in");
ofstream cout("ruleta1.out");
int n,i,v[10005],u[10005],r,z,t,k,aux;
bool ok,s;
int main()
{
cin>>n;
for(i=0;i<n;i++)
{
cin>>v[i];
u[i]=i+1;
}
k=n;
u[n-1]=0;
i=0;
while(ok==0)
{
if(u[i]==(i+1)%n&&v[u[i]]>=v[i]&&v[i])
{
s=1;
v[u[i]]-=v[i];
if(v[u[i]]+t==0)
{
k=i;
t=1;
}
else if(v[i]<=v[u[i]])
{
u[k]=i;
t=0;
k=n;
}
}
if(u[i]<i)
{
r++;
if(s==0)
ok=1;
else
s=0;
}
i=u[i];
}
cout<<r<<' ';
for(i=0;i<n;i++)
if(v[i])
z++;
cout<<z;
return 0;
}