File tree Expand file tree Collapse file tree 5 files changed +62
-0
lines changed Expand file tree Collapse file tree 5 files changed +62
-0
lines changed Original file line number Diff line number Diff line change
1
+ #include < cstdio>
2
+
3
+
4
+ int main (){
5
+ long long int as, bs;
6
+ scanf (" %lld %lld" , &as, &bs);
7
+
8
+ long long a[as], b[bs];
9
+ for (long long int i=0 ;i<as;i++) scanf (" %lld" , &a[i]);
10
+ for (long long int i=0 ;i<bs;i++) scanf (" %lld" , &b[i]);
11
+
12
+ long long int c[as+bs];
13
+ long long int ap=0 , bp=0 ;
14
+
15
+ while (ap<as || bp<bs){
16
+ if (ap==as){
17
+ c[ap+bp]=b[bp];
18
+ bp++;
19
+ }
20
+ else if (bp==bs){
21
+ c[ap+bp]=a[ap];
22
+ ap++;
23
+ }
24
+
25
+ else if (a[ap]<b[bp]){
26
+ c[ap+bp]=a[ap];
27
+ ap++;
28
+ }
29
+ else {
30
+ c[ap+bp]=b[bp];
31
+ bp++;
32
+ }
33
+ }
34
+
35
+ for (long long int i=0 ;i<as+bs;i++) printf (" %lld " , c[i]);
36
+ }
Original file line number Diff line number Diff line change
1
+ #include < cstdio>
2
+ #include < algorithm>
3
+ using namespace std ;
4
+
5
+ int n;
6
+ int t[15000001 ];
7
+ int p[15000001 ];
8
+ int dp[15000001 ];
9
+
10
+ int main (){
11
+ scanf (" %d" , &n);
12
+ for (int i=0 ;i<n;i++){
13
+ scanf (" %d%d" , &t[i], &p[i]);
14
+ dp[i]=0 ;
15
+ }
16
+ dp[n]=0 ;
17
+
18
+ for (int i=n-1 ;i>=0 ;i--){
19
+ if (i+t[i]>n) dp[i]=dp[i+1 ];
20
+ else {
21
+ dp[i]=max (dp[i+t[i]]+p[i], dp[i+1 ]); // 그날 업무 하는 거랑 안하는 것 중에 큰 것 고르기.
22
+ }
23
+ }
24
+
25
+ printf (" %d\n " , dp[0 ]);
26
+ }
You can’t perform that action at this time.
0 commit comments