답안 #638744

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
638744 2022-09-07T08:59:50 Z jamezzz Sandcastle 2 (JOI22_ho_t5) C++17
0 / 100
0 ms 212 KB
#include <bits/stdc++.h>
using namespace std;

#define fi first
#define se second
#define sf scanf
#define pf printf
typedef long long ll;
typedef long double ld;
typedef pair<int,int> ii;
#define all(x) x.begin(), x.end()
#define lb(x,v) (lower_bound(all(x),v)-x.begin())
#define ub(x,v) (upper_bound(all(x),v)-x.begin())
#define disc(x) sort(all(x));x.resize(unique(all(x))-x.begin());

#define maxn 50005
#define INF 1023456789

int h,w,a[maxn];
stack<int> s;

int main(){
	sf("%d%d",&h,&w);
	for(int i=0;i<w;++i){
		sf("%d",&a[i]);
	}
	ll ans=0;
	for(int i=0;i<w;++i){
		while(!s.empty()&&a[s.top()]<a[i])s.pop();
		if(s.empty())ans+=i;
		else ans+=i-s.top()+1;
		s.push(i);
	}
	while(!s.empty())s.pop();
	for(int i=w-1;i>=0;--i){
		while(!s.empty()&&a[s.top()]<a[i])s.pop();
		if(s.empty())ans+=w-1-i;
		else ans+=s.top()-i;
		s.push(i);
	}
	pf("%lld\n",ans);
}

Compilation message

Main.cpp: In function 'int main()':
Main.cpp:23:4: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   23 |  sf("%d%d",&h,&w);
      |    ^
Main.cpp:25:5: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   25 |   sf("%d",&a[i]);
      |     ^
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 212 KB Output isn't correct
2 Halted 0 ms 0 KB -