fork download
  1. #include <bits/stdc++.h>
  2. #define ll long long
  3. #define Shity ios_base::sync_with_stdio(0);
  4. #define Code cin.tie(0), cout.tie(0);
  5. #define TOO \
  6.   int t = 1; \
  7.   cin >> t;
  8. #define nulll0 \
  9.   while (t--) { \
  10.   yEaGeR(); \
  11.   }
  12. #define all(x) begin(x), end(x)
  13. #define rall(x) rbegin(x), rend(x)
  14. #define TO int t = 1;
  15. #define sz(s) (int)s.size()
  16.  
  17. using namespace std;
  18. /*==============================================*/
  19. // EReN yEaGeR :)
  20. /*==============================================*/
  21. bool isprime(ll n) {
  22. if (n < 2)
  23. return false;
  24. for (ll i = 2; i * i <= n; i++) {
  25. if (n % i == 0)
  26. return false;
  27. }
  28. return true;
  29. }
  30. /*==============================================*/
  31. vector<ll> divisors(ll n) {
  32. vector<ll> ans;
  33. for (ll i = 1; i * i <= n; i++) {
  34. if (n % i == 0) {
  35. ans.push_back(i);
  36. if (i * i != n)
  37. ans.push_back(n / i);
  38. }
  39. }
  40. sort(all(ans));
  41. return ans;
  42. }
  43. /*==============================================*/
  44. ll __lcm(ll a, ll b) {return (a * b) / __gcd(a, b);}
  45. /*==============================================*/
  46. const int N = 1e6 + 5;
  47. vector<ll> primes;
  48. bool is_prime[N];
  49. ll n;
  50. void sieve() {
  51. fill(is_prime, is_prime + n + 1, true);
  52. is_prime[0] = is_prime[1] = false;
  53. for (int i = 2; i <= n; i++) {
  54. if (is_prime[i]) {
  55. primes.push_back(i);
  56. for (long long j = (long long)i * i; j <= n; j += i) {
  57. is_prime[j] = false;
  58. }
  59. }
  60. }
  61. }
  62. /*==============================================*/
  63. vector<ll> getprefix(const vector<ll>& nums) {
  64. vector<ll> prefix(nums.size());
  65. if (nums.empty()) return prefix;
  66. prefix[0] = nums[0];
  67. for (int i = 1; i < nums.size(); ++i) {
  68. prefix[i] = prefix[i - 1] + nums[i];
  69. }
  70. return prefix;
  71. }
  72. /*==============================================*/
  73. bool isPowerOfTwo(int n) {
  74. if (n <= 0) return false;
  75. return (n & (n - 1)) == 0;
  76. }
  77. /*==============================================*/
  78. string tobinary(ll num) {
  79. if (num == 0) return "0";
  80. string binary = "";
  81. while (num > 0) {
  82. binary = (num % 2 == 0 ? "0" : "1") + binary;
  83. num /= 2;
  84. }
  85. return binary;
  86. }
  87. /*==============================================*/
  88. void yEaGeR() {
  89. // sorting and search
  90. // binary search
  91. ll n;cin>>n;
  92. vector<string>v(n);
  93. for(int i=0;i<n;i++){
  94. cin>>v[i];
  95. }
  96. map<string,ll>mp;
  97. for(int i=0;i<n;i++){
  98. mp[v[i]]++;
  99. if(mp[v[i]]==1){
  100. cout<<"ok\n";
  101. }
  102. else{
  103. cout<<v[i]<<mp[v[i]]-1<<'\n';
  104. }
  105. }
  106. }
  107. /*==============================================*/
  108. int main() {
  109.  
  110. // #ifndef ONLINE_JUDGE
  111. // freopen("out.out", "w", stdout);
  112. // freopen("in.in", "r", stdin);
  113. // #else
  114. // #endif
  115. //Shity Code TOO nulll0
  116. Shity Code TO nulll0
  117. }
Success #stdin #stdout 0s 5328KB
stdin
Standard input is empty
stdout
Standard output is empty