제출 #693182

#제출 시각아이디문제언어결과실행 시간메모리
693182NemanjaSo2005카니발 티켓 (IOI20_tickets)C++14
27 / 100
523 ms60276 KiB
#include<bits/stdc++.h>
#include "tickets.h"
#define ll long long
using namespace std;
int N,M,K,koliko[1505][1505],p1[1505],p2[1505];
struct sslog{
   int vred,i,j;
}sniz[1505];
bool spov(sslog a,sslog b){
   return a.vred<b.vred;
}
struct slog{
   ll v2,v1;
   int i,j1,j2;
} niz[1505];
bool cmp(slog a,slog b){
   return a.v1+a.v2<b.v1+b.v2;
}
vector<vector<int>> kako;
ll find_maximum(int k,vector<vector<int>> d){
   kako=d;
   for(int i=0;i<kako.size();i++)
      for(int j=0;j<kako[i].size();j++)
         kako[i][j]=-1;
   K=k;
   N=d.size();
   M=d[0].size();
   for(int i=1;i<=N;i++)
      for(int j=1;j<=M;j++)
         koliko[i][j]=d[i-1][j-1];
   /*if(M==1){
      for(int i=1;i<=N;i++){
         sniz[i].vred=koliko[i][1];
         sniz[i].i=i-1;
         sniz[i].j=1-1;
      }
      sort(sniz+1,sniz+1+N,spov);
      ll res=0;
      for(int i=1;i<=N/2;i++){
         res-=sniz[i].vred;
        // cout<<"- "<<niz[i].vred<<endl;
         kako[sniz[i].i][sniz[i].j]=0;
      }
      for(int i=N/2+1;i<=N;i++){
         //cout<<"+ "<<niz[i].vred<<endl;
         kako[sniz[i].i][sniz[i].j]=0;
         res+=sniz[i].vred;
      }
      //cout<<res<<endl;
      allocate_tickets(kako);
      return res;
   }*/
   for(int i=1;i<=N;i++){
      p1[i]=1;
      p2[i]=M;
   }
   ll res=0;
   for(int dan=0;dan<K;dan++){/*
      for(int i=1;i<=N;i++)
         cout<<p1[i]<<" pok "<<p2[i]<<endl;*/
      for(int i=1;i<=N;i++){
         niz[i].v1=koliko[i][p1[i]];
         niz[i].v2=koliko[i][p2[i]];
         niz[i].j1=p1[i]-1;
         niz[i].j2=p2[i]-1;
         niz[i].i=i-1;
      }
      sort(niz+1,niz+1+N,cmp);
      //for(int i=1;i<=N;i++)
       //  cout<<niz[i].v1<<" "<<niz[i].v2<<endl;
      for(int i=1;i<=N/2;i++){
         res-=niz[i].v1;
         p1[niz[i].i+1]++;
         kako[niz[i].i][niz[i].j1]=dan;
      }
      for(int i=N/2+1;i<=N;i++){
         res+=niz[i].v2;
         p2[niz[i].i+1]--;
         //cout<<niz[i].i<<endl;
         kako[niz[i].i][niz[i].j2]=dan;
      }
   }
   allocate_tickets(kako);
   return res;
}

컴파일 시 표준 에러 (stderr) 메시지

tickets.cpp: In function 'long long int find_maximum(int, std::vector<std::vector<int> >)':
tickets.cpp:22:17: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::vector<int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |    for(int i=0;i<kako.size();i++)
      |                ~^~~~~~~~~~~~
tickets.cpp:23:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   23 |       for(int j=0;j<kako[i].size();j++)
      |                   ~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...