Facebook
From Magda, 6 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 263
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void zamiana (long long int dni, long long int *B, long long int k)
  6. {
  7.     long long int s=0, p=0;
  8.     while (!(B[s]<dni&&B[s+1]>=dni))
  9.     {
  10.         s=(p+k)/2;
  11.         if (B[s]<dni) p=s;
  12.         else k=s;
  13.     }
  14.     cout<<dni-B[s]<<" "<<s+1<<endl;
  15. }
  16.  
  17. int main()
  18. {
  19.     long long int *A, *B, dni, n, m, d, mi, t, k;
  20.     char z;
  21.     cin>>n>>m;
  22.     A=new long long int[n+1];
  23.     B=new long long int[m+1];
  24.     A[0]=0;
  25.     B[0]=0;
  26.     for (long long int i=0; i<n; i++)
  27.     {
  28.         cin>>d;
  29.         A[i+1]=A[i]+d;
  30.     }
  31.     for (int i=0; i<m; i++)
  32.     {
  33.         cin>>d;
  34.         B[i+1]=B[i]+d;
  35.     }
  36.     cin>>t;
  37.     for (long long int i=0; i<t; i++)
  38.     {
  39.         cin>>d>>mi>>z;
  40.         if (mi==1) dni=d;
  41.         else dni=(z=='A'?A[mi-1]+d:B[mi-1]+d);
  42.         k=(z=='A'?m:n);
  43.         if (z=='A') zamiana(dni, B, k);
  44.         else zamiana(dni, A, k);
  45.     }
  46.     delete [] A;
  47.     delete [] B;
  48. }
  49.