# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
203654 | ics0503 | Naan (JOI19_naan) | C++17 | 7 ms | 508 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<stdio.h>
#include<set>
#include<vector>
using namespace std;
set<long long >people;
struct xy { int x; double y; }L[2121];
double need[2121];
long long v[2121][2121], S[2121][2121];
long long gcd(long long a, long long b) {
if (b == 0)return a;
return gcd(b, a%b);
}
vector<int>ans;
int main() {
long long n, l, i, j; scanf("%lld%lld", &n, &l);
for (i = 1; i <= n; i++)people.insert(i);
bool flag = 1;
for (i = 1; i <= n; i++) {
for (j = 1; j <= l; j++)scanf("%lld", &v[i][j]);
long long gg = v[i][1];
for (j = 1; j <= l; j++)gg = gcd(gg, v[i][j]);
for (j = 1; j <= l; j++) {
v[i][j] /= gg; S[i][j] = S[i][j - 1] + v[i][j];
need[i] += v[i][j];
if (v[i][j] != v[1][j])flag = 0;
}
need[i] /= n;
}
if (flag) {
for (i = 1; i <= n-1; i++) {
printf("%lld %lld\n", i*l, n);
}
for (i = 1; i <= n; i++)printf("%d ", i);
return 0;
}
long long befa = 1;double p = 0;
for (i = 1; i <= n - 1; i++) {
long long mnx = 1e9;double mny; long long mnw;
for (long long who : people) {
if ((1-p) * v[who][befa] > need[who]) {
L[who].x = befa;
L[who].y = (need[who] - p*v[who][befa]) / v[who][befa];
}
else {
while ((1 - p) * v[who][befa] + (S[who][L[who].x] - S[who][befa]) <= need[who]) {
L[who].x++;
}
L[who].y = (need[who] - (1 - p) * v[who][befa] - (S[who][L[who].x - 1] - S[who][befa])) / v[who][L[who].x];
}
if (mnx > L[who].x || (mnx == L[who].x&&mny > L[who].y)) {
mnx = L[who].x;
mny = L[who].y;
mnw = who;
}
}
befa = L[mnw].x, p = L[mnw].y+1e-3;
long long gj = 1e9;
long long g = befa*gj + p*gj;
printf("%lld %lld\n", g, gj);
people.erase(mnw);
ans.push_back(mnw);
}
for (int i = 0; i < ans.size(); i++)printf("%d ", ans[i]);
printf("%lld", *people.begin());
return 0;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |