Cod sursă (job #814935)

Utilizator avatar Sebi_Ionescu Ionescu Sebastian Andrei Sebi_Ionescu IP ascuns
Problemă Ruleta1 ( clasa a 6-a ) Compilator c-32 | 1.00 kb
Rundă Arhiva de probleme Status evaluat
Dată 15 mar. 2025 13:03:14 Scor 60

#include <stdio.h>
#include <stdlib.h>
int v[10000], poz[10000];
int main(){
  int n, i, ok, z, poz0, curs;
  long long contor;
  FILE *fin, *fout;
  fin=fopen("ruleta1.in", "r");
  fout=fopen("ruleta1.out", "w");
  fscanf(fin, "%d", &n);
  for(i=0; i<n; i++){
    fscanf(fin, "%d", &v[i]);
    poz[i]=i+1;
  }
  poz[n-1]=0;
  i=0;
  curs=1;
  ok=0;
  contor=0;
  poz0=n;
  while(curs==1){
    if(poz[i]==(i+1)%n)
      if(v[i]<=v[(i+1)%n] && v[i]!=0){
        v[(i+1)%n]-=v[i];
        ok=1;
        if(v[(i+1)%n]+z==0){
          poz0=i;
          z=1;
        }
        else if(v[i]<=v[(i+1)%n]){
          poz[poz0]=i;
          z=0;
          poz0=n;
        }
      }
    if(poz[i]<i){
      contor++;
      if(ok==0)
        curs=0;
      else
        ok=0;
    }
    i=poz[i];
  }
  fprintf(fout, "%lld ", contor);
  contor=0;
  for(i=0; i<n; i++)
    if(v[i]>0)
        contor++;
  fprintf(fout, "%lld", contor);
  fclose(fin);
  fclose(fout);
    return 0;
}