Submission #1046054

#TimeUsernameProblemLanguageResultExecution timeMemory
1046054gagik_2007Sprinklers (CEOI24_sprinklers)C++17
26 / 100
22 ms1296 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; typedef pair<int, int> pii; typedef pair<ll, ll> pll; #define ff first #define ss second ll ttt; const ll INF=1e18; const ll MOD=1e9+7; const ll N=100007; ll n,m,k; int f[N],s[N]; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); // freopen("Finput.txt","r",stdin); // freopen("Foutput.txt","w",stdout); cin>>n>>m; for(int i=0;i<n;i++){ cin>>s[i]; } for(int i=0;i<m;i++){ cin>>f[i]; } if((n<=10&&m<=1000)||n==1){ int ans=MOD; int ansmsk=0; for(int msk=0;msk<(1<<n);msk++){ int curmax=0; for(int j=0;j<m;j++){ int cur=MOD; for(int i=0;i<n;i++){ if( ( (msk&(1<<i)) && s[i]<=f[j] )||( (!(msk&(1<<i))) && s[i]>=f[j] ) ){ cur=min(cur,abs(s[i]-f[j])); } } curmax=max(curmax, cur); } if(ans>curmax){ ans=curmax; ansmsk=msk; } } if(ans==MOD){ cout<<-1<<endl; return 0; } cout<<ans<<endl; for(int i=0;i<n;i++){ if(ansmsk&(1<<i)){ cout<<"R"; } else{ cout<<"L"; } } cout<<endl; } else{ int ans=0; int l=0; for(int j=0;j<m;j++){ while(l<n-1&&s[l+1]<f[j]){ l++; } int dist=abs(f[j]-s[l]); if(l<n-1){ dist=min(dist,abs(f[j]-s[l+1])); } ans=max(ans,dist); } cout<<ans<<endl; for(int i=0;i<n;i+=3){ cout<<"LLR"; } cout<<endl; } }
#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...