Submission #525790

#TimeUsernameProblemLanguageResultExecution timeMemory
525790ali22413836Olympiads (BOI19_olympiads)C++14
0 / 100
3 ms3148 KiB
#include <bits/stdc++.h> #define endl "\n" using namespace std ; typedef int ll; typedef long double ld ; const int N=2e7; const ll inf=1e18 ; const ll mod = 1e9 + 7 ; ll mypower(ll x, ll y){ if(y == 0) return 1 ; if(y == 1) return x ; ll ret = mypower(x , y / 2); ret = (ret * ret) % mod; if(y % 2) ret = ( ret * x ) % mod ; return ret ; } ll n , k , c ; ll a[509][509] ; set < pair < ll , vector < ll > > > ss; bool can(ll ind , vector < ll > x){ for(auto p : x){ if (p == ind) return 0 ; } return 1 ; } vector < ll > ans ; int main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> k >> c ; for(int i = 1 ; i <= n ; i++){ for(int j = 1 ; j <= k ; j++){ cin >> a[i][j] ; } } ss.insert({0 , {}}) ; for(int i = 1 ; i <= k ; i++){ set < pair < ll , vector < ll > > > ss2 ; for(auto p : ss){ for(int j = 1 ; j <= n ; j++){ if(can(j , p.second)){ vector < ll > nv = p.second ; nv.push_back(j) ; sort(nv.begin() , nv.end()) ; ll nco = 0 ; for(int l = 1 ; l <= nv.size() ; l++){ ll mx = 0 ; for(auto q : nv){ mx = max(mx , a[q][l]) ; } nco += mx ; } ss2.insert({nco , nv}) ; } } while(ss2.size() > c + 200){ ss2.erase(ss.begin()) ; } } ss = ss2 ; } for(auto p : ss) ans.push_back(p.first); cout << ans[ans.size() - c] << endl ; return 0 ; }

Compilation message (stderr)

olympiads.cpp:7:14: warning: overflow in conversion from 'double' to 'll' {aka 'int'} changes value from '1.0e+18' to '2147483647' [-Woverflow]
    7 | const ll inf=1e18 ;
      |              ^~~~
olympiads.cpp: In function 'int main()':
olympiads.cpp:46:39: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   46 |                     for(int l = 1 ; l <= nv.size() ; l++){
      |                                     ~~^~~~~~~~~~~~
olympiads.cpp:56:30: warning: comparison of integer expressions of different signedness: 'std::set<std::pair<int, std::vector<int> > >::size_type' {aka 'long unsigned int'} and 'll' {aka 'int'} [-Wsign-compare]
   56 |             while(ss2.size() > c + 200){
      |                   ~~~~~~~~~~~^~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...