Cod sursa(job #419777)

Utilizator mgntMarius B mgnt Data 17 martie 2010 22:55:48
Problema Farfurii Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
int
main() {
  int n, i, j, t;
  long long int k, c;
  ifstream is("farfurii.in");
  ofstream os("farfurii.out");
  stringstream ss;
  stringbuf * sb;
  is>>n>>k;
  if(0==k) {
    for(i=1; n>=i; ++i) { ss<<' '<<i; }
  } else {
    i=2; c=1;
    while (k>c) { c+=i; ++i; }
    for (j=1; n-i>=j; ++j) { ss<<' '<<j; }
    if (k==c) {
      for(j=n; n-i<j; --j) { ss<<' '<<j; }
    } else {
      t=n-(c-k);
      ss<<' '<<t;
      for(j=n; n-i<j; --j) {
        if (j!=t) { ss<<' '<<j; }
      }
    }
  }
  ss<<endl;
  sb=ss.rdbuf();
  os<<sb->str();
  return 0;
}