Submission #780251

#TimeUsernameProblemLanguageResultExecution timeMemory
780251vjudge1Go (COCI18_go)C++17
40 / 100
66 ms165084 KiB
#include<bits/stdc++.h> using namespace std; #define lalala ios_base::sync_with_stdio(false);cin.tie(NULL); //#define endl "\n" #define ll long long #define pb push_back #define N 200005 // süre nerde pokemon_deg vector<tuple<ll int,ll int,ll int>> pokemon; int n,m,k; ll int dp[102][103][2002]; map<int,int> mp; ll int hesap(int hangi_pokemon,ll int sn,ll int sonyer){ if(dp[hangi_pokemon][sonyer][sn]!=-1)return dp[hangi_pokemon][sonyer][sn]; if(hangi_pokemon>=m)return 0; ll int a=hesap(hangi_pokemon+1,sn,sonyer); ll int b=0; ll int nerde,deg,tim; tie(tim,nerde,deg)=pokemon[hangi_pokemon]; ll int xxx,yyy,zzz; if(sonyer!=102)tie(yyy,xxx,zzz)=pokemon[sonyer]; else xxx=k; if(tim>abs(nerde-xxx)+sn){ b=hesap(hangi_pokemon+1,sn+abs(nerde-xxx),hangi_pokemon)+deg; } dp[hangi_pokemon][sonyer][sn]=max(a,b); return dp[hangi_pokemon][sonyer][sn]; } int main(){ lalala; memset(dp,-1,sizeof(dp)); int mm;cin>>n>>k>>mm; ll int cev=0; for(int i=0;i<mm;i++){ ll int a,b,c;cin>>a>>b>>c; if(a==k){ cev+=b; continue; } if(abs(k-a)<c){ m++; pokemon.pb({c,a,b}); } } sort(pokemon.begin(),pokemon.end()); cout<<hesap(0,0,102)+cev<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...