Advertisement
Guest User

Untitled

a guest
Oct 13th, 2015
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.87 KB | None | 0 0
  1. #include <iostream>
  2. #include <iomanip>
  3. #include <vector>
  4. #include <algorithm>
  5. #include <numeric>
  6. #include <functional>
  7. #include <cmath>
  8. #include <queue>
  9. #include <stack>
  10. #include <set>
  11. #include <map>
  12. #include <sstream>
  13. #include <string>
  14.  
  15. #define repd(i,a,b) for (int i=(a);i<(b);i++)
  16. #define rep(i,n) repd(i,0,n)
  17. #define var auto
  18. #define mod 1000000007
  19. #define inf 2147483647
  20. typedef long long ll;
  21.  
  22. using namespace std;
  23.  
  24. int inputValue(){
  25. int a;
  26. cin >> a;
  27. return a;
  28. }
  29.  
  30. template <typename T>
  31. void output(T a, int precision) {
  32. if(precision > 0){
  33. cout << fixed << setprecision(precision) << a << "\n";
  34. }
  35. else{
  36. cout << a << "\n";
  37. }
  38. }
  39.  
  40. // end of template
  41.  
  42. int main() {
  43. // source code
  44. int N = inputValue();
  45.  
  46. vector<int> V(N);
  47. vector<int> D(N);
  48. vector<ll> P(N);
  49.  
  50. rep(i, N){
  51. cin >> V[i] >> D[i] >> P[i];
  52. }
  53.  
  54. vector<int> C(N, 1);
  55.  
  56. ll disum = 0;
  57.  
  58. rep(i, N){
  59. if (P[i] - disum >= 0) {
  60. int tmp = V[i];
  61. int j = i + 1;
  62. while (j < N && tmp > 0) {
  63. if (P[j] - disum >= 0 && C[j]) {
  64. P[j] -= tmp;
  65. tmp--;
  66. if (P[j] < 0) {
  67. C[j] = 0;
  68. }
  69. }
  70. j++;
  71. }
  72. ll sum = disum;
  73. int k = i + 1;
  74. while (k < N){
  75. if (P[k] - sum < 0) {
  76. sum += D[k];
  77. C[k] = 0;
  78. }
  79. k++;
  80. }
  81. }
  82. else{
  83. disum += D[i];
  84. C[i] = 0;
  85. }
  86.  
  87. }
  88. int cnt = 0;
  89. rep(i, N){
  90. if (C[i]) {
  91. cnt++;
  92. }
  93. }
  94. output(cnt, 0);
  95.  
  96. rep(i, N){
  97. if (C[i]) {
  98. cout << i + 1 << " ";
  99. }
  100. }
  101. output("", 0);
  102.  
  103.  
  104. return 0;
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement