Submission #448430

#TimeUsernameProblemLanguageResultExecution timeMemory
448430fuad27Ice Hockey World Championship (CEOI15_bobek)C++14
20 / 100
1091 ms204 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #include<bits/stdc++.h> using namespace std; class biginteger { public: string integer; biginteger(string s) { integer = s; } string get_int() { return integer; } string sum(string str1) { string str2 = integer; if (str1.length() > str2.length()) swap(str1, str2); string str = ""; int n1 = str1.length(), n2 = str2.length(); reverse(str1.begin(), str1.end()); reverse(str2.begin(), str2.end()); int carry = 0; for (int i=0; i<n1; i++) { int sum = ((str1[i]-'0')+(str2[i]-'0')+carry); str.push_back(sum%10 + '0'); carry = sum/10; } for(int i=n1; i<n2; i++) { int sum = ((str2[i]-'0')+carry); str.push_back(sum%10 + '0'); carry = sum/10; } if (carry) str.push_back(carry+'0'); reverse(str.begin(), str.end()); return str; } string multiply(string num2) { string num1 = integer; int len1 = num1.size(); int len2 = num2.size(); if (len1 == 0 || len2 == 0) return "0"; vector<int> result(len1 + len2, 0); int i_n1 = 0; int i_n2 = 0; for (int i=len1-1; i>=0; i--) { int carry = 0; int n1 = num1[i] - '0'; i_n2 = 0; for (int j=len2-1; j>=0; j--) { int n2 = num2[j] - '0'; int sum = n1*n2 + result[i_n1 + i_n2] + carry; carry = sum/10; result[i_n1 + i_n2] = sum % 10; i_n2++; } if (carry > 0) result[i_n1 + i_n2] += carry; i_n1++; } int i = result.size() - 1; while (i>=0 && result[i] == 0) i--; if (i == -1) return "0"; string s = ""; while (i >= 0) s += std::to_string(result[i--]); return s; } string divide(int divisor) { string number = integer; string ans; int idx = 0; int temp = number[idx] - '0'; while (temp < divisor) temp = temp * 10 + (number[++idx] - '0'); while (number.size() > idx) { ans += (temp / divisor) + '0'; temp = (temp % divisor) * 10 + number[++idx] - '0'; } if (ans.length() == 0) return "0"; return ans; } bool isSmaller(string str1, string str2) { int n1 = str1.length(), n2 = str2.length(); if (n1 < n2) return true; if (n2 < n1) return false; for (int i = 0; i < n1; i++) if (str1[i] < str2[i]) return true; else if (str1[i] > str2[i]) return false; return false; } string difference(string str2) { string str1 = integer; if (isSmaller(str1, str2)) swap(str1, str2); string str = ""; int n1 = str1.length(), n2 = str2.length(); reverse(str1.begin(), str1.end()); reverse(str2.begin(), str2.end()); int carry = 0; for (int i = 0; i < n2; i++) { int sub = ((str1[i] - '0') - (str2[i] - '0') - carry); if (sub < 0) { sub = sub + 10; carry = 1; } else carry = 0; str.push_back(sub + '0'); } for (int i = n2; i < n1; i++) { int sub = ((str1[i] - '0') - carry); if (sub < 0) { sub = sub + 10; carry = 1; } else carry = 0; str.push_back(sub + '0'); } reverse(str.begin(), str.end()); string result = ""; bool zero = false; for(char i:str) { if(!zero and i == '0')continue; else { zero = true; result.push_back(i); } } return result; } string getInteger() { return integer; } }; int32_t main () { int n, c = 0; biginteger m("0"); cin >> n >> m.integer; vector<biginteger> v(n, biginteger("0")); for(int i = 0;i<n;i++) { cin >> v[i].integer; } for (int b = 0; b < (1<<n); b++) { biginteger sum("0"); for (int i = 0; i < n; i++) { if (b&(1<<i)) sum.integer=sum.sum(v[i].integer); } if(sum.integer == m.integer or sum.isSmaller(sum.integer, m.integer))c++; } cout<<c<<"\n"<<endl; }

Compilation message (stderr)

bobek.cpp: In member function 'std::string biginteger::divide(long long int)':
bobek.cpp:92:25: warning: comparison of integer expressions of different signedness: 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} and 'long long int' [-Wsign-compare]
   92 |    while (number.size() > idx) {
      |           ~~~~~~~~~~~~~~^~~~~
#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...
#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...