제출 #837729

#제출 시각아이디문제언어결과실행 시간메모리
837729Baytoro메기 농장 (IOI22_fish)C++17
18 / 100
69 ms7268 KiB
#include "fish.h"
#include <bits/stdc++.h>
//#include "grader.cpp"
using namespace std;
#define ll long long
#define sc second
#define fr first
#define pb push_back
long long max_weights(int n, int m, vector<int> x, vector<int> y, vector<int> w){
	bool sb1=1,sb2=1,sb3=1;
	for(int i=0;i<m;i++){
		sb1&=(x[i]%2==0);
		sb2&=(x[i]<=1);
		sb3&=(y[i]==0);
	}
	if(sb1){
		ll sum=0;
		for(int i=0;i<m;i++) sum+=w[i];
		return sum;
	}
	if(sb2){
		vector<ll> a(n),b(n);
		ll A=0,B=0;
		for(int i=0;i<m;i++){
			if(x[i]==0){
				A+=w[i];
				a[y[i]]=w[i];
			}
			else{
				B+=w[i];
				b[y[i]]=w[i];
			}
		}
		if(n==2) return max(A,B);
		ll x=0,y=B;
		for(int i=0;i<n;i++){
			x+=a[i];
			y-=b[i];
			B=max(B,x+y);
		}
		return B;
		
	}
	if(sb3){
		vector<ll> a(n);
		for(int i=0;i<m;i++)
			a[x[i]]=w[i];
		vector<ll> dp(n),mx(n);
		for(int i=1;i<n;i++){
			dp[i]=mx[i-1]+a[i];
			mx[i]=max(mx[i-1],dp[i-1]);
			if(i>1) mx[i]=max(max(mx[i-2],dp[i-2])+a[i-1],mx[i]);
			else mx[i]=max(a[i-1],mx[i]);
		}
		ll ans=0;
		for(int i=0;i<n;i++) ans=max({ans,dp[i],mx[i]});
		return ans;
	}
}

컴파일 시 표준 에러 (stderr) 메시지

fish.cpp: In function 'long long int max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
fish.cpp:59:1: warning: control reaches end of non-void function [-Wreturn-type]
   59 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...