제출 #732846

#제출 시각아이디문제언어결과실행 시간메모리
732846eneskavNivelle (COCI20_nivelle)C++17
0 / 110
3 ms340 KiB
// No bits/stdc++.h because clang #include <iostream> #include <vector> #include <algorithm> #include <string> #include <set> #include <map> #include <queue> #include <stack> #include <cmath> #include <cstring> #include <iomanip> #include <unordered_map> #include <unordered_set> #include <bitset> #include <numeric> #include <cassert> #include <random> #include <type_traits> #include <list> #include <tuple> #include <climits> // I don't know how any of these work, but its nice to have them #pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math,inline,unsafe-math-optimizations") #pragma GCC target("avx,avx2,fma,sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") template <typename T> void debug(T &x, std::string name = "") { if (name == "") std::cerr << ":= " << x << "\n"; else std::cerr << name << " = " << x << "\n"; } template <typename T> void debugArr(T &arr, int n = -1, std::string name = "") { if (n == -1) n = sizeof(arr) / sizeof(arr[0]); if (name == "") std::cerr << ":= "; else std::cerr << name << " = "; std::cerr << "["; for (int i = 0; i < n; i++) std::cerr << arr[i] << ","[i == n - 1]; std::cerr << "]" << "\n"; } template <typename T> void debugArr(std::vector<T> &arr, int n = -1, std::string name = "") { if (n == -1) n = arr.size(); if (name == "") std::cerr << ":= "; else std::cerr << name << " = "; std::cerr << "["; for (int i = 0; i < n; i++) std::cerr << arr[i] << ","[i == n - 1]; std::cerr << "]" << "\n"; } using namespace std; /******************* Uncomment this for long long (TLE) *******************/ // #define int long long #define vint vector<int> #define pint pair<int, int> #define mint map<int, int> #define sint set<int> #define msint multiset<int> #define qint queue<int> #define pqint priority_queue<int> #define lint list<int> #define stint stack<int> #define gint greater<int> #define pb push_back #define mp make_pair #define f first #define s second #define guv \ int u, v; \ cin >> u >> v #define sz(x) (int)x.size() #define cinarr(x, n) \ for (int i = 0; i < n; i++) \ cin >> x[i] #define coutarr(x, n) \ for (int i = 0; i < n; i++) \ cout << x[i] << " "; \ cout << endl #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define _reset(x, y) memset(x, y, sizeof(x)) #define _mid ((l + r) >> 1) #define endl "\n" #define FASTIO ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr) #define FILEIO freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout) inline void swap(int &a, int &b) { a ^= b; b ^= a; a ^= b; } inline int gcd(int a, int b) { while (b) { a %= b; swap(a, b); } return a; } /* _____ ____ ____ ____ _ _ ____ _ __ / __// _ \/ _ \/ _ \ / \ / \ /\/ _\/ |/ / | | _| / \|| / \|| | \| | | | | ||| / | / | |_//| \_/|| \_/|| |_/| | |_/\| \_/|| \_ | \ \____\____/\____/\____/ \____/\____/\____/\_|\_\ */ inline void solve() { int n; cin >> n; char s[n]; map<char, int> freq; for (int i = 0; i < n; ++i) { cin >> s[i]; ++freq[s[i]]; } int f = freq.size(); double best = 0; int left = -1; int right = -1; for (int i = 1; i <= f; ++i) { // cout << "i: " << i << endl; map<char, int> m; int l = 0; for (int r = 0; r < n && l <= r; ++r) { /* for (auto j : m) { cout << j.first << " " << j.second << endl; } */ ++m[s[r]]; int x = m.size(); // cout << "x: " << x << endl; if (x > i) { // cout << ">" << endl; --m[s[l]]; if (m[s[l]] == 0) { m.erase(s[l]); } ++l; } else if (x == i) { int length = r - l + 1; double score = (double)length / (double)i; if (score > best) { left = l; right = r; best = score; } } // cout << endl; } } // cout << best << endl; cout << left + 1 << " " << right + 1 << endl; // My code is not working!!! Try these fixes: // 1. Check for overflow (uncommenct #define int long long) // 2. Check for array bounds // 3. Check for array indexes, 1-indexed or 0-indexed? // 4. Check for special cases (n=1?) // 5. Check for multiple test cases (remember to clear global variables) // 6. Check the limits of your data types maybe l <= r, maybe 0 <= n... // Getting TLE? Try these fixes: // 1. Delete the line: #define int long long // 2. Use array instead of vector // Getting WA? Good luck, you're on your own } signed main() { int t = 1; FASTIO; /******************* Uncomment this if you want to read from input.txt ********************/ #ifndef ONLINE_JUDGE FILEIO; #endif /***************** Uncomment this if you want to test multiple test cases *****************/ // cin >> t; for (int i = 1; i <= t; i++) { /**************** Uncomment this if you want to print the case number ****************/ // cout << "Case " << i << ":" << endl; solve(); } return '0' ^ '0'; }

컴파일 시 표준 에러 (stderr) 메시지

nivelle.cpp: In function 'int main()':
nivelle.cpp:101:23: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  101 | #define FILEIO freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout)
      |                ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
nivelle.cpp:205:2: note: in expansion of macro 'FILEIO'
  205 |  FILEIO;
      |  ^~~~~~
nivelle.cpp:101:57: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
  101 | #define FILEIO freopen("input.txt", "r", stdin), freopen("output.txt", "w", stdout)
      |                                                  ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
nivelle.cpp:205:2: note: in expansion of macro 'FILEIO'
  205 |  FILEIO;
      |  ^~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...