Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.20 KB | None | 0 0
  1. #include<vector>
  2. #include<queue>
  3. #include<iostream>
  4. using namespace std;
  5. #define ll int
  6. #define ARRS ((ll)(6e3+100))
  7. #define fr first
  8. #define sc second
  9. #define pb push_back
  10. #define MX ((ll)(1e9+100))
  11. #define MAX ((ll)(1e18+100))
  12.  
  13.  
  14. ll n,m;
  15. vector<ll> v[ARRS];
  16. ll f[6000][400];
  17. ll a[6000];
  18.  
  19. queue<pair<ll, pair<ll,ll> > > st;
  20.  
  21. int main(){
  22.     ll n,m,k,p;
  23.     ios::sync_with_stdio(0);
  24.     cin>>n>>m;
  25.     for(int i=0; i<n; i++){
  26.         cin>>a[i];
  27.     }
  28.     for(int i=0; i<m; i++){
  29.         cin>>k>>p;
  30.         k--;
  31.         p--;
  32.         v[k].pb(p);
  33.         v[p].pb(k);
  34.     }
  35.     st.push(make_pair(0,make_pair(0,0)));
  36.     while(st.size()){
  37.         pair<ll,pair<ll,ll> > x=st.front();
  38.         st.pop();
  39.         if(f[x.sc.fr][x.sc.sc])continue;
  40.         f[x.sc.fr][x.sc.sc]=1;
  41.         ll d=x.fr+1;
  42.         cout<<d<<" "<<x.fr<<" "<<x.sc.fr<<" "<<x.sc.sc<<endl;
  43.         for(int i=0; i<v[x.sc.fr].size(); i++){
  44.             int y=v[x.sc.fr][i];
  45.             ll l=x.sc.fr;
  46.             ll r=y;
  47.             ll k=x.sc.sc;
  48.             //if(a[l]>a[r])swap(l,r);
  49.             if(abs(a[r]-a[l])<180){
  50.                 k+=a[r]-a[l];
  51.             }
  52.             else {
  53.                 k-=a[r]-a[l];
  54.             }
  55.             k%=360;
  56.             k+=360;
  57.             k%=360;
  58.             if(k&&y==0){
  59.                 cout<<k<<endl;
  60.                 cout<<d<<endl;
  61.                 return 0;
  62.             }
  63.             st.push(make_pair(d,make_pair(y, k) ));
  64.         }
  65.     }
  66.     cout<<-1<<endl;
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement