fork(1) download
  1. #include <bits/stdc++.h>
  2. #define int long long
  3. using namespace std;
  4. struct node{
  5. int a,b;
  6. }arr[100050],brr[100050];
  7. int n,m,l,ans;
  8. signed main(){
  9. cin>>l>>n>>m;
  10. for(int i=1;i<=n;i++){
  11. cin>>arr[i].a>>arr[i].b;
  12. }
  13. for(int i=1;i<=m;i++){
  14. cin>>brr[i].a>>brr[i].b;
  15. }
  16. int j=1;
  17. for(int i=1;i<=n && j<=m;){
  18. int minn=min(arr[i].b,brr[j].b);
  19. if(arr[i].a==brr[j].a){
  20. ans+=minn;
  21. }
  22. arr[i].b-=minn;
  23. brr[j].b-=minn;
  24. if(brr[j].b<=0){
  25. j++;
  26. }
  27. if(arr[i].b<=0){
  28. i++;
  29. }
  30. }
  31. cout<<ans;
  32. }
Success #stdin #stdout 0s 5320KB
stdin
1000 4 7
19 79
33 463
19 178
33 280
19 255
33 92
34 25
19 96
12 11
19 490
33 31
stdout
380