Submission #755896

#TimeUsernameProblemLanguageResultExecution timeMemory
755896vjudge1Password (RMI18_password)C++17
0 / 100
10 ms208 KiB
#include<bits/stdc++.h> typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef double db; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define pbds tree<pair<int, int>, null_type, less<pair<int, int>>,rb_tree_tag, tree_order_statistics_node_update> using namespace __gnu_pbds; ll gcd(ll a , ll b) {return b ? gcd(b , a % b) : a ;} // greatest common divisor (PGCD) ll lcm(ll a , ll b) {return (a * b) / gcd(a , b);} // least common multiple (PPCM) int dx[8] = {1, 0, 0, -1, 1, 1, -1, -1}; int dy[8] = {0, 1, -1, 0, 1, -1, -1, 1}; #define endl "\n" #define ss second #define ff first #define all(x) (x).begin() , (x).end() #define pb push_back #define vi vector<int> #define vii vector<pair<int,int>> #define vl vector<ll> #define vll vector<pair<ll,ll>> #define pii pair<int,int> #define pll pair<ll,ll> #define pdd pair<double,double> #define vdd vector<pdd> #define speed ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); using namespace std; ////////////////////Only Clear Code////////////////////////// void init(){ #ifndef ONLINE_JUDGE freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); #endif // ONLINE_JUDGE } const int mx = 1e6+9; const int LOG = 25; const ll inf = 1e18; const ll mod = 1e9+7; int freq[30]; /* string pass; bool subsequence(string a, string b){ int ind = 0; for(int i = 0; i < b.size();i++){ if(b[i] == a[ind]){ ind++; if(ind == a.size())return 1; } } return 0; }*/ int query(string str); string guess(int n, int s){ for(int i = 0; i < s;i++){ freq[i] = 0; } for(int i = 0; i < s;i++){ char x = i+'a'; string c = string(1, x); while(c.size() <= n){ int res = query(c); if(res == c.size())freq[i] = c.size(); else break; c += x; } } string c = ""; for(int i = 0; i < s;i++){ char x = i+'a'; if(freq[i] != 0){ int k = freq[i]; while(k--){ c += x; } freq[i] = 0; break; } } /*for(int i = 0; i < s;i++){ if(freq[i] == 0)continue; char x = i+'a'; cout << x << " " << freq[i] << endl; string x1 = string(1, x); int last = c.size(); int k = freq[i]; while(k--){ int l = 0, r = c.size(); int ind = 0; while(l <= r){ int md = (l+r)/2; string temp = c; //cout << md << endl; temp.insert(md, x1); int b = query(temp); //cout << temp << " " << b << endl; if(b == temp.size()){ ind = md; l = md+1; } else{ r = md-1; } } last = ind; c.insert(ind, x1); //cout << c << "!! " << endl; } }*/ return c; } /*string guess(int n, int s){ string c = ""; for(int i = 0; i < s;i++){ char x = i + 'a'; if(query(c + x) != 0){ c = x; break; } } for(int i = 0;c.size() < n && i < s;i++){ char x = i + 'a'; //cout << x << endl; while(c.size() < n){ bool ok = 0; for(int j = 0;j <= c.size();j++){ string temp = c; temp.insert(j, string(1, x)); if(query(temp) == temp.size()){ c = temp; ok = 1; break; } } if(!ok){ break; } } } return c; }*/ /* void run_case(){ pass = "aeafeddbadcab"; cout << guess(13, 6) << endl; } int main(){ init(); speed; int t; //cin >> t; t = 1; while(t--){ run_case(); } }*/ /* NEVER GIVE UP! DOING SMTHNG IS BETTER THAN DOING NTHNG!!! Your Guide when stuck: - Continue keyword only after reading the whole input - Don't use memset with testcases - Check for corner cases(n=1, n=0) - Check where you declare n(Be careful of declaring it globally and in main) */

Compilation message (stderr)

password.cpp: In function 'std::string guess(int, int)':
password.cpp:70:24: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   70 |         while(c.size() <= n){
      |               ~~~~~~~~~^~~~
password.cpp:72:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   72 |             if(res == c.size())freq[i] = c.size();
      |                ~~~~^~~~~~~~~~~
password.cpp: In function 'void init()':
password.cpp:35:8: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   35 | freopen("input.txt", "r", stdin);
      | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
password.cpp:37:8: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   37 | freopen("output.txt", "w", stdout);
      | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#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...