Submission #211632

# Submission time Handle Problem Language Result Execution time Memory
211632 2020-03-20T21:08:59 Z tleontest1 Bob (COCI14_bob) C++14
0 / 120
172 ms 18936 KB
#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(int 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<int> 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();
			}
			dp[i][j]=aktar;
			while(st[j].size()){
				if(esit>=st[j].top()){
					dp[i][j]-=st[j].top();
					dp[i][j]+=esit;
					st[j].pop();
				}
				else break;
			}
			st[j].push(esit);
			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

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 time Memory Grader output
1 Incorrect 5 ms 1408 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 6 ms 1408 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 35 ms 9472 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 38 ms 9848 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 40 ms 10104 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 38 ms 10104 KB Output isn't correct
# Verdict Execution time Memory Grader output
1 Incorrect 147 ms 18936 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 172 ms 18296 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 169 ms 18408 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 165 ms 18300 KB Output isn't correct
2 Halted 0 ms 0 KB -