| Показать все ветки Спрятать все ветки Показать все сообщения Спрятать все сообщения |
| 8 test | Artem | 1269. Антимат | 11 авг 2018 00:25 | 1 |
8 test Artem 11 авг 2018 00:25 |
| What is Test case #5 | Krishnan | 1104. Не спрашивай даму о возрасте | 10 авг 2018 17:39 | 4 |
What is Test case #5 for question 1104 Output is "No solution.". (!) BE CAREFUL NOT "No solution" but "No solution." Output is "No solution.". (!) BE CAREFUL NOT "No solution" but "No solution." Thanks... |
| How to fix the Compilation Error ? | Min Aung Dain | 1000. A+B Problem | 10 авг 2018 16:29 | 3 |
I wrote the code in python as below x = input().split(' ') a = int(x[0]) b = int(x[1]) sum = a + b print(sum) But it shows compilation error and I don't know what causes it and how to fix it. mb you were wrong when you selected the language? yeah, check, u selected FreePascal 2.6 |
| Bigger=MLE Smaller=RE???? | ZhaoJInsong | 1012. K-ичные числа. Версия 2 | 10 авг 2018 09:40 | 2 |
#include <iostream> #include <fstream> #include <cstdio> #include <cassert> #include <complex> #include <cmath> #include <algorithm> #include <vector> #include <string> #include <cstdlib> #include <cstring> #include <iomanip> #include <numeric> #include <sstream> #include <ctime> #include <cctype> #include <set> #include <map> #include <queue> #include <bitset> #include <deque> #include <stack> #include <memory.h> using namespace std; typedef long long ll; #define mp make_pair const int MAXN =1500;
struct bign { int len, s[MAXN]; bign () { memset(s, 0, sizeof(s)); len = 1; } bign (int num) { *this = num; } bign (const char *num) { *this = num; } bign operator = (const int num) { char s[MAXN]; sprintf(s, "%d", num); *this = s; return *this; } bign operator = (const char *num) { for(int i = 0; num[i] == '0'; num++) ; //ȥǰµ¼0 len = strlen(num); for(int i = 0; i < len; i++) s[i] = num[len-i-1] - '0'; return *this; } bign operator + (const bign &b) const //+ { bign c; c.len = 0; for(int i = 0, g = 0; g || i < max(len, b.len); i++) { int x = g; if(i < len) x += s[i]; if(i < b.len) x += b.s[i]; c.s[c.len++] = x % 10; g = x / 10; } return c; } bign operator += (const bign &b) { *this = *this + b; return *this; } void clean() { while(len > 1 && !s[len-1]) len--; } bign operator * (const bign &b) //* { bign c; c.len = len + b.len; for(int i = 0; i < len; i++) { for(int j = 0; j < b.len; j++) { c.s[i+j] += s[i] * b.s[j]; } } for(int i = 0; i < c.len; i++) { c.s[i+1] += c.s[i]/10; c.s[i] %= 10; } c.clean(); return c; } bign operator *= (const bign &b) { *this = *this * b; return *this; } bign operator - (const bign &b) { bign c; c.len = 0; for(int i = 0, g = 0; i < len; i++) { int x = s[i] - g; if(i < b.len) x -= b.s[i]; if(x >= 0) g = 0; else { g = 1; x += 10; } c.s[c.len++] = x; } c.clean(); return c; } bign operator -= (const bign &b) { *this = *this - b; return *this; } bign operator / (const bign &b) { bign c, f = 0; for(int i = len-1; i >= 0; i--) { f = f*10; f.s[0] = s[i]; while(f >= b) { f -= b; c.s[i]++; } } c.len = len; c.clean(); return c; } bign operator /= (const bign &b) { *this = *this / b; return *this; } bign operator % (const bign &b) { bign r = *this / b; r = *this - r*b; return r; } bign operator %= (const bign &b) { *this = *this % b; return *this; } bool operator < (const bign &b) { if(len != b.len) return len < b.len; for(int i = len-1; i >= 0; i--) { if(s[i] != b.s[i]) return s[i] < b.s[i]; } return false; } bool operator > (const bign &b) { if(len != b.len) return len > b.len; for(int i = len-1; i >= 0; i--) { if(s[i] != b.s[i]) return s[i] > b.s[i]; } return false; } bool operator == (const bign &b) { return !(*this > b) && !(*this < b); } bool operator != (const bign &b) { return !(*this == b); } bool operator <= (const bign &b) { return *this < b || *this == b; } bool operator >= (const bign &b) { return *this > b || *this == b; } string str() const { string res = ""; for(int i = 0; i < len; i++) res = char(s[i]+'0') + res; return res; } };
istream& operator >> (istream &in, bign &x) { string s; in >> s; x = s.c_str(); return in; }
ostream& operator << (ostream &out, const bign &x) { out << x.str(); return out; } bign dp[1800][2]; bign k; int n; int main() { cin>>n>>k; dp[0][0]=k-1; dp[0][1]=0; for(int i=1;i<n;i++){ dp[i][0]=(k-1)*(dp[i-1][0]+dp[i-1][1]); dp[i][1]=dp[i-1][0]; } cout<<dp[n-1][0]+dp[n-1][1]; return 0; } my bigint struct hope will help const int T=400, MOD=10000000; struct bigInt { int a[T], n; bigInt(){}; bigInt(int x) { memset(a, 0, sizeof a); n = 1, a[0] = x; } void init(int x) { n = 1; a[0] = x; } bool operator < (const bigInt &x) { if (n < x.n) return 1; else if (n > x.n) return 0; for (int i=n-1; i>=0; i--) if (a[i] < x.a[i]) return 1; else if (a[i] > x.a[i]) return 0; return 0; } bigInt operator * (const bigInt &x) { bigInt t(0); t.n = x.n + n - 1; for (int i=0; i<n; i++) for (int j=0; j<x.n; j++) t.a[i+j]+=a[i]*x.a[j]; for (int i=0; i<t.n; i++) { t.a[i+1]+=t.a[i]/MOD; t.a[i]%=MOD; } if (t.a[t.n]) t.n++; return t; } bigInt operator + (const bigInt &x) { bigInt t(0); t.n = max(x.n, n); for (int i=0; i<t.n; i++) { t.a[i] = t.a[i] + x.a[i] + a[i]; t.a[i+1]+=t.a[i]/MOD; t.a[i]%=MOD; } if (t.a[t.n]) t.n++; return t; } void print() { printf("%d",a[n-1]); for (int i=n-2; i>=0; i--) printf("%07d",a[i]); puts(""); } }; Ps:this will only work with the + operator. To get AC, I changed the base from 10000 to 10000000, so the * operator won't work. |
| WA#37 | gautamvs | 1891. Язык Ocean | 9 авг 2018 20:10 | 2 |
WA#37 gautamvs 9 дек 2012 18:41 Please, somebody provide with test case ... Check for "Invalid initialization" case. Edited by author 09.08.2018 20:10 |
| C: Why doesn't the recursion stop? | y87cgp | 1001. Обратный корень | 9 авг 2018 18:16 | 1 |
#include <stdio.h> #include <math.h> void recur(void); int main() {
recur(); return 0; } void recur() { long int num; scanf("%ld", &num); if (num != EOF) recur(); printf("%.5f\n", sqrt(num)); } Edited by author 09.08.2018 18:20 |
| little asvice (no spoilers) | bstu_student | 1654. Шифровка | 9 авг 2018 09:09 | 1 |
char[200001] gives perfect time if you will check repeats while string is inputting |
| use printf() instead of cout and string instead of char if you use c++ stl | Haloom | 1654. Шифровка | 9 авг 2018 09:08 | 2 |
i used deque. cout got me TLE.using printf save me. if(st.front()!=s[i]) { st.emplace_front(s[i]); } else st.pop_front();
for(it=st.end()-1; it>=st.begin(); it--) { printf("%c",*it); } i say more - it's better don't use stl-containers if it's possible. char[200001] gives perfect time |
| Why my code doesn't work with c++ 'sort' ? But it works fine with stable_sort o_O | sirius_lyra | 1100. Таблица результатов | 9 авг 2018 06:09 | 3 |
/* * @Author: eleven * @Date: 2017-05-21 02:50:38 * @Last Modified by: eleven * @Last Modified time: 2018-02-09 14:49:14 */ // Status : AC ( works with stable_sort ) // doesn't works with sort #include <bits/stdc++.h> using namespace std; #define SIZE 150005 struct team{ int id; int solved; }teams[SIZE]; bool foo(team lhs, team rhs){ return lhs.solved > rhs.solved; } void print(int n ){ for(int i= 0; i<n ; ++i){ cout<<teams[i].id<<" "<<teams[i].solved<<'\n'; } } int main(){ //freopen("in","r",stdin); //freopen("out","w",stdout); int n ; cin>>n; for(int i = 0; i<n ; ++i){ cin>>teams[i].id>>teams[i].solved; } stable_sort(teams,teams+n ,foo); print(n); return 0; } I don't know why, but i have tha same problem. WA with sort, AC with stable_sort *go to read faq's* #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <algorithm> using namespace std; pair <int, int> a[150000]; int n; bool comp(pair <int, int> a, pair <int, int> b) { return a.first > b.first; } int main() { scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d%d", &a[i].second, &a[i].first); stable_sort(a, a + n, comp); //sort(a, a+n,comp); for (int i=0;i<n;i++) printf("%d %d\n", a[i].second, a[i].first); return 0; } OK, i've found yhe answere - stable_sort keeps the relative order berween equal elements... because this is stable sort)) |
| C++ 11 STL AC | coldwind | 1545. Иероглифы | 8 авг 2018 14:28 | 1 |
#include<iostream> #include<string> #include<map> #include<set> using namespace std; int main(){ map<char,set<string>> dic; string w; int n; cin>>n; while(--n>=0){ cin>>w; dic[w[0]].insert(w); } char c; cin>>c; for(auto s:dic[c]) cout<<s<<endl; } |
| See If you are getting WA 7 | Ashish Nimbalkar | 1203. Научная конференция | 7 авг 2018 14:30 | 1 |
If you are using DP, make sure you are using multimap instead of map ( In c++ )
|
| Ideas for #41 | bstu_student | 1682. Чокнутый профессор | 7 авг 2018 14:16 | 3 |
Does anyon know, what is the longest test? I check a couple of numbers,with k= 99998 execution was the longest, but i'm not sure. UPD: I check (write k=99998 instead a reading number), and if WA#1 said truth, i reach the answere in 0,71. But this decision is still have TLE#41 :( Maybe, there is a harder 'k' for this task? Edited by author 07.08.2018 11:17 Edited by author 07.08.2018 11:17 You can try to binary search the test case. Put somewhere in your program the following if (clock() >= 0.9 * CLOCK_PER_SEC) { assert(K <= BINARY_SEARCH_MIDDLE); } You need to include <cassert> and <ctime> for these to work. Now (double)clock() / CLOCK_PER_SEC gives you program execution time in seconds. clock() >= 0.9 * CLOCK_PER_SEC checks that your program runs more than 0.9 seconds, in other words, approaching TL of 1s. This 'if' allows to execute code that will probably work only on 41th test case. assert( boolean expression ); exits with non-zero value if condition is not met. You could also do if (K <= BINARY_SEARCH_MIDDLE) { exit(your favourite non-zero number); } So, you can start with assert(K <= 100000 / 2) and so on. If you program fails on 41th test with RE instead of TL you change the bin search value. |
| why is my code not accepted? Visual C | Niloy | 1820. Уральские бифштексы | 6 авг 2018 21:53 | 2 |
i am doing (n%k)+(n/k) after putting restriction on k(k<=1000) and n(n>=1). but my answer is said to be wrong.please help. Edited by author 30.06.2013 01:11 14%4 +14/4=2+3=5 but ans is 4. every pancake has 2 sides so 13 pancake has 26 sides.pan fry can fry 4 pancakes at one minute one side. so, IF(2*13%4>=1) sum=((2*n)/k)+1; else{ sum=(2*n)/k; } calculate it . |
| No subject | a2ch | 1617. Ползуны | 6 авг 2018 18:22 | 1 |
"Some tram drivers are fans of fast driving, and they damage both rails and their trams. If a tram accelerates to a high speed, say 80 kilometers per hour, and then brakes sharply before a stop, it goes some distance skidding." Is this "initial D" reference?! Edited by author 19.08.2018 20:53 |
| WA#25 | die_young | 1754. Взрыв в пирамиде | 6 авг 2018 17:56 | 1 |
WA#25 die_young 6 авг 2018 17:56 Had problem with 25th test because of integer overflow. My program used int64_t which was not enough with my approach. Casting computations to double hepled me. |
| Mistake in English statement? | mouse_wireless2 | 1117. Иерархия | 6 авг 2018 11:30 | 2 |
The statement says "The number of intermediate levels of employees between an arbitrary employee who has subordinates (an ordinary employee) and the employee who has no superiors (the main superior) is the same for all ordinary employees." However, in the first paragraph, it says that "ordinary employee" means an employee who has NO subordinates. Therefore, I think the statement should say: "The number of intermediate levels of employees between an arbitrary employee who has NO subordinates (an ordinary employee) and the employee who has no superiors (the main superior) is the same for all ordinary employees." I looked at the Russian version of the statement with google translate and that seems to be the case. There is also no mention in the statement that the structure is that of a SINGLE tree (and not a forest), but the answer seems to assume this. The statement only says that each employee has "not more than one direct superior", therefore one can understand that it is possible, for example, that no employee has a direct superior (and therefore the structure is a forest of single-node trees). |
| DELETED | die_young | 2086. Найти Дениса | 5 авг 2018 22:37 | 1 |
Edited by author 06.08.2018 11:30 |
| I long time try, and found this formula: | xurshid_n | 1475. Курочка-Ряба | 5 авг 2018 12:45 | 6 |
4*h * n ( n + 1 ) > H minimal n - is answer!
but I doubt, that this is correct. It's correct or not? v0*t*sin(theta)+0.5*g*sin(theta)*t^2 *n>=sqrt(H*H+l*l) v0=sqrt(2*g*h) t=2*v0/g tan(theta)=H/l. seems to be correct PS. this problem is too simple.. Edited by author 12.10.2017 06:25 Edited by author 12.10.2017 06:40 the correct formula is 4*h*n*(n+1)>(H*H+l*l)/H Maybe provide some explanation Oh Your previous comment is the explanation Let O=(l,H), A=(0,0), B=(l,0). System of coordinates: OX=AO, OY = BO rotate on teta (teta=arctan(H/l)). Then: vx(t) = (v+gt)*sin(teta) vy(t) = (v-gt)*cos(teta) x(t) = V*sin(teta)+g*sin(teta)*(t^2)/2 y(t) = V*cos(teta)-g*cos(teta)*(t^2)/2 First point: (l, H) => x=0, y=0 Second point: y(t)=0 <=> t=2*v/g x(2*v/g) = 4*(V^2)*sin(teta)/g = d = 8 * h * sin(teta) (mg(H+h)=mgH+m*(V^2)/2) x = d, y = 0 Distance between First point and Second point = d Distance between Second point and Third point = 2*d ... Distance between i point and i+1 point = i*d If n = answer => d+2d+3d+...+(n-1)d<=sqrt(H^2 + l^2) d+2d+3d+...+(n-1)d+nd>sqrt(H^2 + l^2) Edited by author 05.08.2018 12:52 |
| why wrong ans? | Azad | | 5 авг 2018 11:48 | 1 |
#include<stdio.h> int main() { int n,m,sum; scanf("%d \t %d", &n ,&m); if(n<=4000 && m<=4000){ sum=n*(m+1); printf("%d",sum); } return 0; } |
| Why?! | Anny Kyort | 1872. Просторный офис | 5 авг 2018 04:58 | 2 |
Why?! Anny Kyort 11 окт 2014 19:48 |