Cod sursă (job #427621)

Utilizator avatar ivddab Ioana Viviana Dabelea ivddab IP ascuns
Problemă Lalele (clasele 9-10) Compilator cpp | 0,88 kb
Rundă Arhiva de probleme Status evaluat
Dată 29 ian. 2019 20:42:34 Scor 100
#include <fstream>
#define NM 5000006
using namespace std;
ifstream f("lalele.in");
ofstream g("lalele.out");
int n,s,i,m,d,x,s1;
int a[NM];
void quicksort(int s,int d){
  int p=a[(s+d)/2];
  int i=s;
  int j=d;
  int aux;
  while(i<=j){
    while(a[i]<p) i++;
    while(a[j]>p) j--;
    if(i<=j) { aux=a[i]; a[i]=a[j]; a[j]=aux;i++;j--; }
  }
  if(s<j) quicksort(s,j);
  if(i<d) quicksort(i,d);
}
int main()
{
    f>>n; s=0;
    while(s<n){
        f>>d>>x; s+=d;
        if(x!=0){
            for(i=1;i<=a[0];i++) a[i]+=d;
            for(i=1;i<=d;i++) a[++a[0]]=x+d-i+1;
        } else{
            m=a[0];
            quicksort(1,a[0]);
            for(i=1;i<=d;i++){
                m=a[0]/2; g<<a[m+1]+i-1<<'\n';
                m+=(a[0]%2);
                a[0]-=m;
            }
            for(i=1;i<=a[0];i++) a[i]+=d;
        }
    }
    return 0;
}