#include "fish.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W)
{
bool subtask1=true, subtask2=true, subtask3=true;
for(int i=0; i<M; i++)
{
if(X[i]%2!=0)subtask1=false;
if(X[i]>1)subtask2=false;
if(Y[i]!=0)subtask3=false;
}
if(subtask1)
{
ll rez=0;
for(int i=0; i<M; i++)rez+=W[i];
return rez;
}
if(subtask2)
{
ll s1=0, s0=0, m[N][2]={0};
for(int i=0; i<M; i++)
{
if(X[i]==0)s0+=W[i];
else s1+=W[i];
m[Y[i]][X[i]]=W[i];
}
for(int i=1; i<N; i++)
{
m[i][0]=m[i-1][0]+m[i][0];
m[i][1]=m[i-1][1]+m[i][1];
}
if(N==2)return max(m[N-1][0], m[N-1][1]);
ll rez=0;
for(int i=0; i<N; i++)
{
rez=max(rez, m[i][0]+m[N-1][1]-m[i][0]);
}
return rez;
}
if(subtask3)
{
ll m[N]={0};
for(int i=0; i<M; i++)
{
m[X[i]]=W[i];
}
ll dp[N][2]={0};
dp[0][1]=0; dp[0][0]=0;
dp[1][1]=m[0]; dp[1][0]=m[1];
for(int i=2; i<N; i++)
{
dp[i][1]=max(dp[i-1][0], dp[i-2][0]+m[i-1]);
dp[i][0]=max(dp[i-1][1]+m[i], dp[i-1][0]);
}
return max(dp[N-1][0], dp[N-1][1]);
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
25 ms |
3272 KB |
Output is correct |
2 |
Correct |
30 ms |
4048 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
0 ms |
212 KB |
Output is correct |
5 |
Correct |
111 ms |
12036 KB |
Output is correct |
6 |
Correct |
95 ms |
12448 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
296 KB |
1st lines differ - on the 1st token, expected: '2', found: '1' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
2 ms |
2644 KB |
Output is correct |
3 |
Incorrect |
18 ms |
4328 KB |
1st lines differ - on the 1st token, expected: '21261825233649', found: '21049836049923' |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
304 KB |
1st lines differ - on the 1st token, expected: '3', found: '0' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
304 KB |
1st lines differ - on the 1st token, expected: '3', found: '0' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
304 KB |
1st lines differ - on the 1st token, expected: '3', found: '0' |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
0 ms |
212 KB |
Output is correct |
2 |
Correct |
2 ms |
2644 KB |
Output is correct |
3 |
Incorrect |
18 ms |
4328 KB |
1st lines differ - on the 1st token, expected: '21261825233649', found: '21049836049923' |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
25 ms |
3272 KB |
Output is correct |
2 |
Correct |
30 ms |
4048 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
0 ms |
212 KB |
Output is correct |
5 |
Correct |
111 ms |
12036 KB |
Output is correct |
6 |
Correct |
95 ms |
12448 KB |
Output is correct |
7 |
Incorrect |
1 ms |
296 KB |
1st lines differ - on the 1st token, expected: '2', found: '1' |
8 |
Halted |
0 ms |
0 KB |
- |