제출 #1322460

#제출 시각아이디문제언어결과실행 시간메모리
1322460hackstarPoi (IOI09_poi)C++20
100 / 100
203 ms31940 KiB
#include<bits/stdc++.h> #pragma GCC optimize("Ofast,O3,unroll-loops") using namespace std; #define pb emplace_back #define ALL(x) (x).begin(),(x).end() #define rALL(x) (x).rbegin(),(x).rend() #define srt(x) sort(ALL(x)) #define rev(x) reverse(ALL(x)) #define rsrt(x) sort(rALL(x)) #define sz(x) (int)(x.size()) #define aura 1e18 #define pii pair<int,int> void die(string s){ puts(s.c_str()); exit(0);} #define int long long const int mod=1e9+7; int binpow(int a,int b) { int res=1; while(b) { if(b&1) res=res*a%mod; b>>=1; a=a*a%mod; } return res%mod; } int inv(int x) { return binpow(x,mod-2)%mod; } void solve() { int n,t,p; cin>>n>>t>>p; vector<vector<int>>a(n,vector<int>(t)); for(auto &x:a) for(int &y:x) cin>>y; p--; vector<int>cnt(t,n); vector<int>cntt(n); vector<int>s(n); for(int i=0;i<n;i++) for(int j=0;j<t;++j) if(a[i][j]) cnt[j]--,cntt[i]++; vector<tuple<int,int,int>>ans; for(int i=0;i<n;++i) { for(int j=0;j<t;++j) { if(a[i][j]) s[i]+=cnt[j]; } ans.pb(s[i],cntt[i],i); } sort(ALL(ans),[&](auto x,auto y){ int x1=get<0>(x); int x2=get<1>(x); int x3=get<2>(x); int y1=get<0>(y); int y2=get<1>(y); int y3=get<2>(y); if(x1==y1) { if(x2==y2) return x3<y3; else return x2>y2; } else return x1>y1; }); for(int i=0;i<n;i++) if(get<2>(ans[i])==p) { cout<<s[p]<<' '<<i+1<<'\n'; return; } } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t=1; #ifdef IOI freopen("test.in","r",stdin); freopen("test.out","w",stdout); #endif // cin>>t; while(t--) solve(); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...