Combothermal

CF1195E

Jul 17th, 2019
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. int N, M; cin >> N >> M; int A, B; cin >> A >> B;
  2. ll G, X, Y, Z; cin >> G >> X >> Y >> Z;
  3. ll data[N][M];
  4. F0R(i, N) {
  5. F0R(j, M) {
  6. data[i][j] = G;
  7. G = (G*X+Y)%Z;
  8. }
  9. }
  10.  
  11. ll slideRow[N][M-B+1];
  12. F0R(i, N) {
  13. priority_queue<pi> pq;
  14. F0R(j, B-1) {
  15. pq.push(mp(data[i][j] * -1, j));
  16. }
  17. FOR(j, B-1, M) {
  18. pq.push(mp(data[i][j] * -1, j));
  19. while (pq.top().s <= j-B) pq.pop();
  20. slideRow[i][j-B+1] = pq.top().f * -1;
  21. }
  22. }
  23.  
  24. ll sum = 0;
  25. F0R(j, M-B+1) {
  26. priority_queue<pi> pq;
  27. F0R(i, A-1) {
  28. pq.push(mp(slideRow[i][j] * -1, i));
  29. }
  30. FOR(i, A-1, N) {
  31. pq.push(mp(slideRow[i][j] * -1, i));
  32. while (pq.top().s <= i-A) pq.pop();
  33. sum += pq.top().f * -1;
  34. }
  35. }
  36.  
  37. cout << sum << endl;
Advertisement
Add Comment
Please, Sign In to add comment