Mendo Judge Discussion Board - Forums
Search
Recent Topics
Hottest Topics
Member Listing
Back to home page
Задача Патики
Forum Index
»
Задачи од национални натпревари
Author
Message
27/01/2019 13:23:40
Subject:
Задача Патики
MODDI
Joined: 27/12/2017 18:17:00
Messages: 39
Offline
#include <iostream> #include <vector> #include <algorithm> #include <string> using namespace std; vector<int> cords_DD; vector<int> cords_LL; vector<pair<char,char> > shoes; void find_cords() { for(int i=0;i<shoes.size();i++) { pair<char,char> at=shoes[i]; if(at.first=='D' && at.second=='D') cords_DD.push_back(i); else if(at.first=='L' && at.second=='L') cords_LL.push_back(i); else continue; } return ; } int count_changes() { int changes=0; if((cords_DD.size()>cords_LL.size()) || cords_LL.size()>cords_DD.size()) return -1; else { for(int i=0;i<cords_DD.size();i++) { int DD_c=cords_DD[i]; int LL_c=cords_LL[i]; int raz; if(DD_c>LL_c) raz=DD_c-LL_c; else if(LL_c>DD_c) raz=LL_c-DD_c; else raz=0; changes+=raz; } } return changes; } int main() { int N; cin>>N; for(int i=0;i<N;i++) { string a; cin>>a; shoes.push_back(make_pair(a[0],a[1])); } find_cords(); long long changes=count_changes(); cout<<changes<<endl; return 0; }
Кодов ми вади 14 точни тест примери, а 6 ми ги дава грешка, може помош???
27/01/2019 16:53:07
Subject:
Задача Патики
MOI
Joined: 07/07/2010 16:31:48
Messages: 447
Offline
MODDI wrote:
Кодов ми вади 14 точни тест примери, а 6 ми ги дава грешка, може помош???
Треба да користиш "long long" и во функцијата count_changes()
Значи, да биде
long long count_changes() ... и ... long long changes=0;
22/03/2019 13:59:26
Subject:
Re:Задача Патики
Hakun
Joined: 16/08/2018 20:38:09
Messages: 2
Offline
#include <bits/stdc++.h> using namespace std; vector<int> d,l; vector<pair<char,char> > vec; int n; void find_cords() { for(int i =0;i<n;i++) { pair<char,char> p = vec[i]; if(p.first== 'D' && p.second == 'D') {d.push_back(i);} if(p.first== 'L' && p.second == 'L') {l.push_back(i);} } } long long int count() { long long int razlika,changes=0; if(d.size() != l.size()) return -1; for(int i =0;i<d.size();i++) { int dd=d[i],ll=l[i]; razlika=max(dd,ll)-min(dd,ll); changes+=razlika; } return changes; } int main() { cin>>n; for(int i =0;i<n;i++) { char a,b; cin>>a>>b; vec.push_back({a,b}); } find_cords(); cout<< count(); return 0; }
Forum Index
»
Задачи од национални натпревари
Go to:
Select a forum
Добродојдовте!
Општа дискусија
Задачи од национални натпревари
Задачи од меѓународни натпревари
Други задачи
Регионални натпревари
Државни натпревари
Македонски Олимпијади
Други натпревари
Pascal
C/C++
Јава
Други јазици
Powered by
JForum 2.1.8
©
JForum Team