Cod sursa(job #881541)

Utilizator OviTzu24Carabian Ovidiu OviTzu24 Data 18 februarie 2013 10:56:10
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include<fstream>
#include<math.h>
#define MAX_N 100005
using namespace std;
ifstream fin("farfurii.in");
ofstream fout("farfurii.out");
int main()
{
 int N,i,sol[MAX_N],aux;
 long long K;
 fin>>N>>K;
  double c = (1 + sqrt(1+8*(double)K))/2;
    long long m = (long long)c;
     
    for (int i = 1; i <= N - m; i++)
        sol[i] = i;
    for (int i = N - m + 1, aux = N; i <= N; i++)
        sol[i] = aux--;
    K -= m * (m - 1) / 2;
    for (int i = N; i && K; i--, K--) {
        sol[i]--;
        sol[N - m]++;} 
    for (int i = 1; i <= N; i++)   
    fout<<sol[i]<<" ";
    
   return 0; 
}