# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
465939 |
2021-08-17T11:47:44 Z |
yanire |
Poi (IOI09_poi) |
C++11 |
|
334 ms |
39492 KB |
#include <bits/stdc++.h>
using namespace std;
//@formatter:off
#ifdef lol
const bool dbg = true;
#else
const bool dbg = false;
#endif
#define dout if(dbg) cout
#define fin(i, s, n) for (auto i = s; i < n; ++i)
#define fine(i, s, n) for (auto i = s; i <= n; ++i)
#define int int64_t
#define x first
#define y second
#define pb push_back
#define eb emplace_back
#define def(x) int x; cin >> x
#define cases def(t); while (t--)
#define cases1 int t = 1; while(t--)
#define all(x) (x).begin(), (x).end()
#define chkmax(a,b) a = max(a,b)
#define chkmin(a,b) a = min(a,b)
using ii = pair<int, int>;
using vi = vector<int>;
using vvi = vector<vector<int>>;
using vii = vector<ii>;
using vvii = vector<vector<ii>>;
using ld = long double;
//using bigint = __int128;
#define tct template<class T>
#define tcab template<class A, class B>
tcab ostream &operator<<(ostream &os, pair<A, B> p) { return os << '{' << p.x << ',' << p.y << '}'; }
tct ostream &operator<<(ostream &os, vector<T> v) { os << '['; if (!v.empty()) { os << v[0]; fin(i, 1, v.size()) os << ',' << v[i]; } return os << ']'; }
tcab istream& operator>>(istream& is, pair<A,B>& p) { return is >> p.x >> p.y; }
tct istream& operator>>(istream& is, vector<T>& v) { for(auto& x : v) is >> x; return is; }
#define popcnt(x) __builtin_popcount(x)
//#define sz(x) int(x.size())
int rnd() { return rand()^(rand()<<15); }
int gcd(int a, int b) { return b?gcd(b,a%b):a;}
//@formatter:on
const int maxn = 2005;
int32_t main() {
cin.tie(0)->sync_with_stdio(0);
int n,t,p;
cin >> n >> t >> p;
vvi a(n,vi(t,0));
vi cnt(n,0),value(t,n),score(n,0);
fin(i,0,n) fin(j,0,t) {
cin >> a[i][j];
cnt[i] += a[i][j];
value[j] -= a[i][j];
}
fin(i,0,n) fin(j,0,t) score[i] += a[i][j]*value[j];
vi ans(n);
iota(all(ans),0);
sort(all(ans),[&](int i, int j) {
if(score[i]!=score[j]) return score[i] > score[j];
if(cnt[i]!=cnt[j]) return cnt[i] > cnt[j];
return i < j;
});
--p;
cout << score[p] << ' ';
fin(i,0,n) if(ans[i]==p) cout << i+1 << endl;
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
204 KB |
Output is correct |
3 |
Correct |
0 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
332 KB |
Output is correct |
7 |
Correct |
1 ms |
332 KB |
Output is correct |
8 |
Correct |
1 ms |
332 KB |
Output is correct |
9 |
Correct |
2 ms |
460 KB |
Output is correct |
10 |
Correct |
3 ms |
588 KB |
Output is correct |
11 |
Correct |
10 ms |
1484 KB |
Output is correct |
12 |
Correct |
16 ms |
2372 KB |
Output is correct |
13 |
Correct |
48 ms |
6132 KB |
Output is correct |
14 |
Correct |
69 ms |
8672 KB |
Output is correct |
15 |
Correct |
122 ms |
15176 KB |
Output is correct |
16 |
Correct |
128 ms |
16280 KB |
Output is correct |
17 |
Correct |
199 ms |
23768 KB |
Output is correct |
18 |
Correct |
218 ms |
27056 KB |
Output is correct |
19 |
Correct |
291 ms |
35648 KB |
Output is correct |
20 |
Correct |
334 ms |
39492 KB |
Output is correct |