Submission #211639

#TimeUsernameProblemLanguageResultExecution timeMemory
211639tleontest1Bob (COCI14_bob)C++14
120 / 120
178 ms35872 KiB
#pragma GCC optimize ("O3") #pragma GCC target ("sse4") #include <bits/stdc++.h> using namespace std; typedef long long lo; typedef pair< lo,lo > PII; #define fi first #define se second #define mp make_pair #define pb push_back #define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL) #define FOR for(lo i=1;i<=n;i++) #define mid ((start+end)/2) #define int long long #define ort ((bas+son)/2) const lo MAX = -1000000000000000000; const lo MIN = 1000000000000000000; const lo inf = 1000000000; const lo KOK = 100000; const lo LOG = 30; const lo li = 1005; const lo mod = 1000000007; int n,m,b[li],a[li][li],k,flag,t,dp[li][li],dp1[li],dp2[li]; int cev; string s; stack<PII> st[li]; vector<int> v; main(void){ scanf("%lld %lld",&n,&m); FOR{ for(int j=1;j<=m;j++)scanf("%lld",&a[i][j]); } FOR{ int esit=1; for(int j=1;j<=m;j++){ if(a[i][j]!=a[i][j-1] && j!=1)esit=1; if(a[i][j]==a[i][j-1] && j!=1)esit++; //~ cout<<"at"<<dp1[1]<<"at"<<endl; int aktar=dp[i-1][j]; if(a[i][j]!=a[i-1][j] && i!=1){ aktar=0; while(st[j].size())st[j].pop(); } int say=0; dp[i][j]=aktar; while(st[j].size()){ if(esit<st[j].top().fi){ say+=st[j].top().se; dp[i][j]-=st[j].top().fi*st[j].top().se; dp[i][j]+=esit*st[j].top().se; st[j].pop(); } else break; } st[j].push(mp(esit,++say)); dp[i][j]+=esit; } } FOR{ for(int j=1;j<=m;j++){ cev+=dp[i][j]; //~ cout<<dp[i][j]<<" "; } //~ cout<<endl; } printf("%lld\n",cev); return 0; }

Compilation message (stderr)

bob.cpp:36:10: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(void){
          ^
bob.cpp: In function 'int main()':
bob.cpp:37:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%lld %lld",&n,&m);
  ~~~~~^~~~~~~~~~~~~~~~~~~
bob.cpp:39:29: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   for(int j=1;j<=m;j++)scanf("%lld",&a[i][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...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...