답안 #403386

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
403386 2021-05-13T06:28:05 Z jamezzz 조개 줍기 (KOI17_shell) C++14
12 / 100
2000 ms 26804 KB
#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace __gnu_pbds;
#include <ext/rope>
using namespace __gnu_cxx;

typedef tree<long long, null_type, less<long long>,
rb_tree_tag, tree_order_statistics_node_update> pbds;
//less_equal for identical elements

#define DEBUG

#ifdef DEBUG
#define debug(...) printf(__VA_ARGS__);
#else
#define debug(...)
#endif
#define sf scanf
#define pf printf
#define fi first
#define se second
#define pb emplace_back
#define sz(x) (int)x.size()
#define mnto(x,y) x=min(x,(__typeof__(x))y)
#define mxto(x,y) x=max(x,(__typeof__(x))y)
#define INF 1023456789
#define LINF 1023456789123456789
#define all(x) x.begin(), x.end()
typedef long long ll;
typedef long double ld;
typedef pair<int, int> ii;
typedef pair<ll, ll> pll;
typedef tuple<int, int, int> iii;
typedef tuple<int, int, int, int> iiii;
typedef vector<int> vi;
typedef vector<ii> vii;
typedef vector<pll> vll;

int n,a[1505][1505];
ll dp[1505][1505];
ll s=0;
char t;
int r,c;

int main(){
	sf("%d",&n);
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			sf("%d",&a[i][j]);
		}
	}
	for(int i=1;i<=n;++i){
		for(int j=1;j<=n;++j){
			dp[i][j]=a[i][j]+max(dp[i-1][j],dp[i][j-1]);
			s+=dp[i][j];
		}
	}
	pf("%lld\n",s);
	for(int i=0;i<n;++i){
		sf(" %c",&t);
		sf("%d%d",&r,&c);
		if(t=='U')++a[r][c];
		else --a[r][c];
		for(int x=r;x<=n;++x){
			for(int y=c;y<=n;++y){
				s-=dp[x][y];
				dp[x][y]=a[x][y]+max(dp[x-1][y],dp[x][y-1]);
				s+=dp[x][y];
			}
		}
		printf("%lld\n",s);
	}
}

Compilation message

shell.cpp: In function 'int main()':
shell.cpp:48:4: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   48 |  sf("%d",&n);
      |    ^
shell.cpp:51:6: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   51 |    sf("%d",&a[i][j]);
      |      ^
shell.cpp:62:5: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   62 |   sf(" %c",&t);
      |     ^
shell.cpp:63:5: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   63 |   sf("%d%d",&r,&c);
      |     ^
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1100 KB Output is correct
2 Correct 4 ms 1228 KB Output is correct
3 Correct 7 ms 1148 KB Output is correct
4 Correct 6 ms 1228 KB Output is correct
5 Correct 6 ms 1228 KB Output is correct
6 Correct 6 ms 1228 KB Output is correct
7 Correct 6 ms 1160 KB Output is correct
8 Correct 6 ms 1228 KB Output is correct
9 Correct 6 ms 1228 KB Output is correct
10 Correct 3 ms 1208 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 613 ms 26804 KB Output is correct
2 Correct 614 ms 26796 KB Output is correct
3 Execution timed out 2083 ms 26672 KB Time limit exceeded
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 1100 KB Output is correct
2 Correct 4 ms 1228 KB Output is correct
3 Correct 7 ms 1148 KB Output is correct
4 Correct 6 ms 1228 KB Output is correct
5 Correct 6 ms 1228 KB Output is correct
6 Correct 6 ms 1228 KB Output is correct
7 Correct 6 ms 1160 KB Output is correct
8 Correct 6 ms 1228 KB Output is correct
9 Correct 6 ms 1228 KB Output is correct
10 Correct 613 ms 26804 KB Output is correct
11 Correct 614 ms 26796 KB Output is correct
12 Execution timed out 2083 ms 26672 KB Time limit exceeded
13 Halted 0 ms 0 KB -