제출 #1009442

#제출 시각아이디문제언어결과실행 시간메모리
1009442tarpent생물 실험 (IZhO13_expgorl)C++14
0 / 100
1 ms348 KiB
#include<bits/stdc++.h> #pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,popcnt,lzcnt,abm,bmi,bmi2,fma,tune=native") using namespace std; long long n,gx,gy,lx,ly,tgx,tgy,lo,up,mid,pgx,pgy,trx,tryi,mi; string pu,k; double ma,tr,miko,mako; char e; long double naj(long long mik){ pgy=gy+mik*tgy; pgx=gx+mik*tgx; miko=INT_MAX; if(abs(lx-pgx)*abs(lx-pgx)+abs(ly-pgy)*abs(ly-pgy)<miko) miko = abs(lx-pgx)*abs(lx-pgx)+abs(ly-pgy)*abs(ly-pgy); for(int i = 0; i<pu.size(); i++){ e=pu[i]; if(e=='L'){ pgx-=1; } else if(e=='R'){ pgx+=1; } else if(e=='F'){ pgy+=1; } else if(e=='B'){ pgy-=1; } if(abs(lx-pgx)*abs(lx-pgx)+abs(ly-pgy)*abs(ly-pgy)<miko) miko = abs(lx-pgx)*abs(lx-pgx)+abs(ly-pgy)*abs(ly-pgy); } return(miko); } long double vec(long long mik){ pgy=gy+mik*tgy; pgx=gx+mik*tgx; mako=0; if(abs(lx-pgx)*abs(lx-pgx)+abs(ly-pgy)*abs(ly-pgy)>mako) mako = abs(lx-pgx)*abs(lx-pgx)+abs(ly-pgy)*abs(ly-pgy); for(int i = 0; i<pu.size(); i++){ e=pu[i]; if(e=='L'){ pgx-=1; } else if(e=='R'){ pgx+=1; } else if(e=='F'){ pgy+=1; } else if(e=='B'){ pgy-=1; } if(abs(lx-pgx)*abs(lx-pgx)+abs(ly-pgy)*abs(ly-pgy)>mako) mako = abs(lx-pgx)*abs(lx-pgx)+abs(ly-pgy)*abs(ly-pgy); } return(mako); } int main(){ ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin>>n; cin>>pu; cin>>lx>>ly>>gx>>gy; pgx=gx;pgy=gy; tgy=0; tgx=0; mi= INT_MAX; ma=0; int siz; char e; for(int i = 0; i<pu.size(); i++){ e=pu[i]; if(e=='L'){ tgx-=1; } else if(e=='R'){ tgx+=1; } else if(e=='F'){ tgy+=1; } else if(e=='B'){ tgy-=1; } } mi=INT_MAX; ma=max(vec(0),vec(n-1)); pgx=gx; pgy=gy; for(int i = 0; i<pu.size(); i++){ lo=0; up=n-1; mid=up/2; e=pu[i]; while(lo<up){ trx=gx+tgx*mid; tryi=gy+tgy*mid; long long dist1 = abs(trx-lx)*abs(trx-lx)+abs(tryi-ly)*abs(tryi-ly); trx+=tgx; tryi+=tgy; long long dist2 = abs(trx-lx)*abs(trx-lx)+abs(tryi-ly)*abs(tryi-ly); if(dist1<dist2) up=mid; else{ lo=mid+1; } mid=(lo+up)/2; } mi=min(mi,abs(gx+mid*tgx-lx)*abs(gx+mid*tgx)+abs(gy+mid*tgy-ly)*abs(gy+mid*tgy)); if(e=='L'){ pgx-=1; } else if(e=='R'){ pgx+=1; } else if(e=='F'){ pgy+=1; } else if(e=='B'){ pgy-=1; } } siz=k.size(); cout<<fixed; cout<<setprecision(12); cout<<sqrt(mi)<<' '<<sqrt(ma); }

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

expgorl.cpp: In function 'long double naj(long long int)':
expgorl.cpp:14:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   14 |  for(int i = 0; i<pu.size(); i++){
      |                 ~^~~~~~~~~~
expgorl.cpp: In function 'long double vec(long long int)':
expgorl.cpp:37:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |  for(int i = 0; i<pu.size(); i++){
      |                 ~^~~~~~~~~~
expgorl.cpp: In function 'int main()':
expgorl.cpp:69:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |  for(int i = 0; i<pu.size(); i++){
      |                 ~^~~~~~~~~~
expgorl.cpp:88:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   88 |  for(int i = 0; i<pu.size(); i++){
      |                 ~^~~~~~~~~~
expgorl.cpp:67:6: warning: variable 'siz' set but not used [-Wunused-but-set-variable]
   67 |  int siz;
      |      ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...