Pagini recente » Cod sursa (job #2238973) | Cod sursa (job #1643079) | Cod sursa (job #1826948) | Cod sursa (job #1532931) | Cod sursa (job #3038868)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream in("farfurii.in");
ofstream out("farfurii.out");
vector <int> sol;
long long cnt=0;
int main()
{
long long n,k;
in>>n>>k;
// nr de elemente pentru care nr de combinari luate cate doua din farfurii sa fie mai mic sau egal cu k
while((n-1-cnt)*(n-2-cnt)/2>=k)
cnt++;
for(int i=1; i<=cnt; i++)
sol.push_back(i);
//nr de combinari luate cate doua din farfurii
long long x=(n-1-cnt)*(n-cnt)/2;
// farfuria ramasa neimperecheata
long long num=n-x;
if(num>cnt)
sol.push_back(num);
for(int i=n; i>cnt; i--)
if(num!=i)
sol.push_back(i);
for(int i=0 ;i<sol.size(); i++)
out<<sol[i]<<" ";
return 0;
}