Cod sursa(job #432048)

Utilizator vladiiIonescu Vlad vladii Data 1 aprilie 2010 19:37:00
Problema Farfurii Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <iostream>
//#include <conio.h>
using namespace std;
#define LL long long
LL N, K, M;

int main() {
    FILE *f1=fopen("farfurii.in", "r"), *f2=fopen("farfurii.out", "w");
    int i, j, p, q, c;
    fscanf(f1, "%d %d", &N, &K);
    while(1) {
         if((LL)M*(M-1)/2<=K && (LL)(M+1)*M/2>K) break;
         M++;
    }
    if((LL)M*(M-1)/2==K) {
         for(i=1; i<=N-M; i++) {
              fprintf(f2, "%d ", i);
         }
         for(i=N; i>=N-M+1; i--) {
              fprintf(f2, "%d ", i);
         }
    }
    else {
         for(i=1; i<=N-M-1; i++) {
              fprintf(f2, "%d ", i);
         }
         fprintf(f2, "%d ", N-((LL)(M+1)*M/2-K));
         for(i=N; i>=N-M; i--) {
              if(i!=N-((LL)(M+1)*M/2-K)) {
                   fprintf(f2, "%d ", i);
              }
         }
    }
    fclose(f1); fclose(f2);
    //getch();
    return 0;
}