Pagini recente » Cod sursa (job #745795) | Cod sursa (job #1622350) | Cod sursa (job #2729875) | Cod sursa (job #2385971) | Cod sursa (job #1081787)
#include <fstream>
#include <cmath>
#define MAXN 100001
using namespace std;
int main() {
long long N, K;
ifstream in("farfurii.in");
in >> N >> K;
in.close();
int v[MAXN];
double p = (sqrt(1 + 8*K) - 1) / 2;
long long pos = p;
if (p != (long long)p) {
++pos;
}
pos = N - pos;
ofstream out("farfurii.out");
for (int i = 1; i < pos; ++i) {
out << i << " ";
}
int val = N;
for (int i = pos; i <= N; ++i) {
v[i] = val--;
}
long long inversiuni = (N - pos) * (N - pos + 1) / 2;
long long diff = inversiuni - K;
int pos2 = pos + diff;
while (diff) {
swap(v[pos2], v[pos2 - diff]);
--diff;
}
for (int i = pos; i <= N; ++i) {
out << v[i] << " ";
}
out.close();
return 0;
}