წერილები: 133
gojira says:
4 აპრილი 2012, 0:10
შორეულ 2007 წელს პროგრამირების შეჯიბრებით დაინტერესებულებს გვქონდა ჩვენი ფორუმი. იმ პერიოდში დავწერე ინსტრუქცია, რომლის საშუალებით ახალბედა დარეგისტრირდებოდა და მიიღებდა მონაწილეობას Topcoder-ის ალგორითმულ შეჯიბრებში. ეს თემა ახლაც აქტუალური ჩანს, ამიტომ ჩემი ძველი პოსტი ამოვქექე, გარკვეული ცვლილებები შევიტანე და ვაქვეყნებ აქ. იმედია გამოგადგებათ.

-----------------------------------

თავის დროზე მე ძალიან დიდი ხანი არ ვიღებდი Topcoder-ის algorithm contest-ებში მონაწილეობას იმის გამო, რომ ყოველ ჯერზე, როდესაც დაწყებას ვაპირებდი, მესმოდა სიტყვები 'არენა', 'ჩელენჯები', 'პრაქტისი', 'პეტრი' და სხვები :D
Topcoder-ზე დარეგისტრირებული 2005 წლის სექტემბრიდან ვარ, თუმცა, მიუხედავად ამისა, პირველი შეჯიბრი მხოლოდ 2006 წლის დეკემბერში დავწერე და ისიც საკმაოდ დიდი გაჭირვებით.
ამიტომ ახლა გადავწყვიტე, პატარა tutorial-ივით დავწერო topcoder-ის დამწყებთათვის, რომ ჩემსავით დიდი ხნით არ გადადონ მაგ საიტზე დებიუტი, რადგან დიდი გამოცდილების შეძენაა იქ შესაძლებელი, ასევე განსხვავებული ფორმატია შეჯიბრის და it's fun :)


-----------------------------------
Step 1. Registration
-----------------------------------

ესე იგი, დასაწყისისთვის შევდივართ Topcoder-ის საიტზე. ზედა მარჯვენა კუთხეში წესით უნდა დაინახოთ ღილაკი ტექსტით Register Now (ანაც [Hello, ვიღაცა | Logout], თუ ვინმე არის ამ დროს დალოგინებული, ამ შემთხვევაში ჯერ logout-ს დააჭირეთ):
https://geolymp.org/static/images/forum/tc/tn_TC_tutorial1.png

Register Now-ზე დაჭერისას თავიდან შემოგთავაზებენ მენიუს, რომელშიც ამჟამად არის სამი პუნქტი: "I want to start using TopCoder Direct", "Topcoder" და "Topcoder Studio". ალგორითმულ შეჯიბრებში მონაწილეობის მისაღებად მონიშნეთ "Topcoder". ამის არჩევის და submit-ის დაჭერის შემდეგ გადახვალთ შემდეგ გვერდებზე, სადაც უკვე ჩვეულებრივი ინფორმაციის შეყვანა მოგიწევთ.

პირველ გვერდზე წესით ყველაფერი გასაგები უნდა იყოს. ყურადღებას გავამახვილებ იმაზე, რომ Student/Professional ველში სკოლის მოსწავლეებმაც და სტუდენტებმაც Student უნდა აირჩიოთ. ბოლოს მონიშნავთ, რომ წაიკითხეთ Terms of Use და დააჭერთ Submit-ს.

მეორე გვერდზე უფრო სპეციფიური ინფორმაცია არის შესაყვანი - მათ შორის ასაკი, სქესი, მაისურის ზომა (მაისურები ზოგჯერ შემთხვევითაც თამაშდება, ამიტომ ურიგო არ იქნება, თუ სწორ ზომას მიუთითებთ, ხოლო პირველ გვერდზე ნამდვილ სახელ-გვარსა და მისამართს შეიყვანთ). თუ პირველ გვერდზე Student აირჩიეთ, აქ ასევე შემოგთავაზებენ მონიშნოთ სასწავლო სტატუსი (Degree Program - სკოლის მოსწავლეებმა High School უნდა აირჩიონ, სტუდენტებმა კი სწავლის შესაბამისი საფეხური). შემდეგ ასევე შეგხვდებათ ველი School - ინგლისურად ეს არა თუ სკოლას, არამედ ნებისმიერ სასწავლო დაწესებულებას გულისხმობს და შესაბამისად სტუდენტებმა ამ ველში უნდა მოძებნოთ თქვენი უმაღლესი სასწავლებელი. ცნობისთვის, თსუ-ს სრული დასახელება "Ivane Javakhishvili Tbilisi State University" გახლავთ.

მესამე გვერდზე შეძლებთ გადახედოთ შეყვანილ ინფორმაციას და Submit ღილაკის მეშვეობით საბოლოოდ დაადასტუროთ თქვენი მომხმარებლის შექმნა.


-----------------------------------
Step 2. Downloading Arena
-----------------------------------

დავიწყოთ იმით, თუ რა არის საერთოდ ეგ არენა :D
Topcoder-ის ალგორითმული შეჯიბრებები ტარდება სხვებისგან მკვეთრად განსხვავებულ გარემოში. იმის მაგივრად, რომ რაღაცა გვერდებზე ვპოულობდეთ ამოცანების პირობებს, რაღაცა გვერდიდან ვაგზავნიდეთ ამოხსნებს და ა.შ., java-ში დაწერილია სპეციალური ე.წ. applet, რომელიც მაგ ფუნქციებს ბევრ სხვა ყველაფერთან ერთად ასრულებს algorithm contest-ების დროს. მაგ applet-ს ჰქვია Topcoder Competition Arena, ანუ ჩვენში უბრალოდ არენა.
Topcoder-ის გვერდზე შესვლისას ზედა მარცხენა კუთხეში ნახავთ ასეთ პრიჩინდალს:

https://geolymp.org/static/images/forum/tc/TC_tutorial2.png

O(n) არის ალგორითმული შეჯიბრების სიმბოლო. მასზე დაჭერისას ან დაიწყება Topcoder Competition Arena-ს გადმოწერა, ან მოხდება მისი გაშვება (თუ იგი თქვენს კომპიუტერზე ისედაც არის), ან შეიძლება გადმოგიხტეთ ფანჯარა, რომელშიც ეწერება 'Java Web Start not found!' და ბევრი სხვა გინება. თუ jre მართლა არ გიყენიათ, მაშინ ის უნდა გადმოწეროთ იმავე გვერდზე მოთავსებული ბმულიდან. კომპიუტერზე jre-ს დაყენების შემდეგ Load Competition Arena-ზე დაჭერას უნდა მოჰყვეს Topcoder Competition Arena-ს გადმოწერა/გაშვება.

წესით, არენის პირველად გადმოწერის შემდეგ მისი icon თქვენს desktop-ზეც უნდა განთავსდეს და საიტზე შემოსვლა აღარ უნდა დაგჭირდეთ ხოლმე ამის გულისთვის.

როდესაც, როგორც იქნა, გაიშვება არენა, ავისრულებთ ამდენი ხნის ნატვრას და შევიყვანთ ჩვენს username-სა და password-ს. ასევე იქ უნდა ამოირჩიოთ connection. ბოლო წლების მანძილზე Direct-ით უპრობლემოდ შევდივარ, თუმცა შეგიძლიათ ტუნელებიც სცადოთ. შემდეგ ვაჭერთ Go-ს :)
https://geolymp.org/static/images/forum/tc/tn_TC_tutorial3.png


-----------------------------------
Step 3. Inside The Arena
-----------------------------------

ახლა თვითონ არენის ფუნქციები განვიხილოთ მოკლედ.
შესვლისას დაგხვდებათ დაახლოებით მსგავსი ფანჯარა:
https://geolymp.org/static/images/forum/tc/tn_TC_tutorial4.png

Who's here და Chat Area სათაურების ქვეშ მოთავსებული ფანჯრები არის საჩატაო ხელსაწყოები, რომლებიც ალბათ ჩემზე უკეთ გეცოდინებათ :D
ერთადერთი, რაც მინდა აღვნიშნო - იმისთვის, რომ ვინმესთვის მიწერილი ტექსტი მარტო ადრესატმა წაიკითხოს და არა მთელმა chatroom-მა, ჩატის ტექსტური სტრიქონის მარცხნივ მოთავსებულ >>-ს უნდა დააჭიროთ და გამოსულ სიაში whisper ამოირჩიოთ, ხოლო მის მარჯვნივ გამოყოფილ ტექსტურ ფანჯარაში ადრესატის ნიკი.
https://geolymp.org/static/images/forum/tc/tn_TC_tutorial5.png

იმათთვის, ვინც პირველად იღებს ტოპკორის შეჯიბრში მონაწილეობას, ჯობია თავიდან practice room-ებში შეიხედონ და სცადონ, წინა შეჯიბრებზე შეთავაზებული ამოცანები ამოხსნან და არენას შეეჩვიონ. ამისთვის ზედა მენიუში უნდა დააჭიროთ Practice Rooms-ს და შემდეგ ამოირჩიოთ რომელიმე შეჯიბრი, მაგალითად SRM 353 DIV 2. გაითვალისწინეთ, რომ თუ უახლოეს დროში იწყება ან უკვე დაიწყო ალგორითმული შეჯიბრი, მაშინ Practice Rooms სიაში მხოლოდ 2 შეჯიბრი გამოჩნდება (ეს კეთდება შეჯიბრის დროს სისტემაზე დატვირთვის მინიმიზაციისთვის).
https://geolymp.org/static/images/forum/tc/tn_TC_tutorial6.png


-----------------------------------
Step 4. Practice Rooms
-----------------------------------

Practice Room-ში შეგიძლიათ, ამოხსნათ იმ კონკრეტული შეჯიბრის ამოცანები და ასევე სცადოთ სხვა ხალხის კოდების ნახვა და ჩაჭრა (დაჩელენჯება), რაზეც მოგვიანებით მოგიყვებით.

ამოცანების პირობების წასაკითხად chatbox-ის ზევით მდებარე Select one-ს უნდა დააჭიროთ და შემდეგ ამოირჩიოთ სამიდან ერთ-ერთი ამოცანა. ყოველ ამოცანას აქვს თავისი წონა, ანუ მაქსიმალური ქულა, რომელიც შეგიძლიათ ამ ამოცანაში აიღოთ პოტენციალურად. წონები დარიგებულია ამოცანების სირთულეების მიხედვით. სტანდარტულად შედარებით ადვილ ამოცანას აძლევენ 250 ქულას, საშუალოს 500-ს და ძნელს 1000-ს.
https://geolymp.org/static/images/forum/tc/tn_TC_tutorial7.png

ერთ-ერთი ამოცანის ამორჩევის შემდეგ, გაგეხსნებათ ფორმა, სადაც იქნება ამ ამოცანის პირობა. ფორმის ქვედა ნახევარს შეადგენს ფანჯარა, სადაც უნდა დაწეროთ (ან დააკოპიროთ სხვა ინტერფეისში დაწერილი) ამოხსნის კოდი. შემდეგ ის უნდა დააკომპილიროთ ტოპკოდერის სერვერზე (ღილაკი Compile ფორმის ქვედა მარჯვენა ნაწილში, შეგიძლიათ გაატესტიროთ ამოცანის პირობაში მოცემულ ტესტებზე (Test) და გააგზავნოთ (Submit). აქ უნდა გაითვალისწინოთ, რომ რაც უფრო ადრე გააგზავნით ამოცანას, მით უფრო მეტი ქულა დაგეწერებათ. ასევე ამოცანის მეორედ გაგზავნის შემთხვევაში მასში ქულები დაგაკლდებათ.
რაც შეეხება თვითონ ამოხსნის ფორმატს, ისიც ძალიან განსხვავდება სხვა შეჯიბრებზე შემოთავაზებულისგან. ტოპკოდერისთვის ამოხსნად ითვლება კლასი, რომელიც შეიცავს მეთოდს (ფუნქციას), რომელიც ამოხსნის პირობის შესაბამის ამოცანას. კლასის სახელი, მეთოდის სახელი და პარამეტრები ამოცანის პირობაშია მოცემული Definition ნაწილში.

ანუ მაგალითად თუ ჩვენი ამოცანაა ორი შემოსული რიცხვის შეკრება, ტოპკოდერისთვის ეს აღარ გამოიყურება როგორც

#include <iostream>
using namespace std;
int main()
{
  int a, b;
  cin >> a >> b;
  cout << a + b << endl;
  return 0;
}


ტოპკოდერზე ეგ იქნება რაღაც ამის მსგავსი:
class ClassName
{
public:
  int sum(int a, int b)
  {
    return a + b;
  }
};


ტოპკოდერზე არასდროს არაა საჭირო standard input-იდან (ეკრანიდან) წაკითხვა ან standard output-ში (ეკრანზე) რაიმეს დაბეჭდვა. ამოცანის ყველა შემავალი პარამეტრი ამომხსნელ მეთოდს გადაეცემა და პასუხსაც ეგ მეთოდი უნდა აბრუნებდეს.
რამოდენიმე შენიშვნა:
1. მეთოდი, რომელსაც ამოცანის პირობაში მოითხოვენ, აუცილებლად კლასის ღია წევრი უნდა იყოს.
2. კლასის აღწერის დამამთავრებელი }-ს შემდეგ აუცილებლად ; უნდა დასვათ.
3. მეთოდის პარამეტრების სახელები შეგიძლიათ ამოცანის პირობაში მოცემულებისგან განსხვავებულები გამოიყენოთ.
4. ამოცანის ფორმის ზედა მარჯვენა კუთხეში უნდა აირჩიოთ ენა, რომელზეც დაწერეთ ამოხსნა. ამის დაყენება by default-იც შეიძლება.

Practice Room-ის 'select one' ღილაკის გვერდზე არის ღილაკი Summary. მასზე დაჭერისას თქვენი ოთახის (რომელიც practice-ის დროს შეიცავს ყველა ამ შეჯიბრზე დარეგისტრირებულ მონაწილეს) ცხრილს იხილავთ. მასში აღნიშნულია, ყოველმა მონაწილემ თითო ამოცანაში რამდენი ქულა აიღო და რა ჯამური ქულა აქვს მას. მონაწილეს სახელის და ამოცანის გადაკვეთაზე დაწერილ ქულაზე ორჯერ დაწკაპუნებისას იხილავთ მაგ მონაწილის შესაბამისი ამოცანის კოდს.
თუ გგონიათ, რომ ამოხსნა, რომელსაც უყურებთ, არაა სწორი, შეგიძლიათ თავისუფლად სცადოთ მისი ჩაჭრა, ანუ დაჩელენჯება, რაც გამოიხატება ისეთი (ამოცანის პირობით დაშვებული) ტესტის შედგენაში, რომელზეც ეგ ამოხსნა არასწორ პასუხს დააბრუნებს. ამოცანის ფორმის ქვედა მარცხენა ნაწილში ნახავთ ღილაკს Challenge, რომელზე დაჭერისას გამოხტება ფანჯარა, რომელზეც უნდა შეიყვანოთ არგუმენტების მნივნელობები, რომლებისთვისაც ამოხსნა ჩავარდება.
თუ ამოხსნას ჩაჭრით, მაშინ 50 ქულა გემატებათ, წინააღმდეგ შემთხვევაში 25 გაკლდებათ.

ამოცანების გაგზავნისას თქვენ ნახავთ შეტყობინებას 'The problem was submitted successfully', მაგრამ ეს სულაც არ ნიშნავს, რომ თქვენი ამოხსნა სწორია. ეგ მხოლოდ იმას ნიშნავს, რომ ამოხსნის კოდი დაკომპილირებული გაქვთ. Practice Room-ში იმის შესამოწმებლად, სწორია თუ არა თქვენი ამოხსნა, შეიძლება შემდეგი რამის გაკეთება:
მენიუში Practice Options-ში დააჭირეთ Run System Test-ს. ის გატესტავს თქვენს მიერ დაწერილ ამოცანებს და ან ყველა ტესტზე 'Passed'-ს დაწერს და მწვანე ჩიტს დაუსვამს, ანაც სადმე გაწითლდება და დაწერს 'Failed!', რაც იმას ნიშნავს, რომ ამოხსნა რომელიღაც ტესტზე ვარდება. თვითონ ტესტის და სწორი პასუხის ნახვას იქვე შეძლებთ.

რეალური შეჯიბრის დროს ამოხსნის სისწორე მხოლოდ შეჯიბრის შემდეგ დგინდება.


-----------------------------------
Step 5. Contests
-----------------------------------

Practice-ებში გავარჯიშების შემდეგ მეტ-ნაკლებად მზად იქნებით რეალური შეჯიბრებებისთვის. ცოტას მაგათზეც მოვყვები.
ტოპკოდერის ალგორითმული შეჯიბრები ძირითადად ორ კატეგორიად იყოფიან: SRM-ები (ანუ Single Round Match, ცალკეული შეჯიბრები ნებისმიერი მონაწილისთვის) და Tournament-ები, ანუ ჩემპიონატები, სადაც ყოველ შემდეგ სტადიაზე მოსახვედრად წინაში კარგი შედეგის ჩვენებაა საჭირო.
შეჯიბრამდე რამოდენიმე საათით ადრე ის მენიუში Active Contest-ში ჩნდება, ხოლო მასზე რეგისტრაცია მის დაწყებამდე 3 საათით ადრე იხსნება და 5 წუთით ადრე იხურება. დარეგისტრირება აუცილებელია მონაწილეობის მისაღებად და პრაქტიკულად 'I Accept'-ზე დაჭერისგან შედგება ხოლმე Register-ზე დაჭერის შედეგად ამომხტარ ფანჯარაში (სურათზე Register-ის მაგივრად Enter არის, ეს უკვე შეჯიბრის დროს და მის შემდეგაა ასე)
https://geolymp.org/static/images/forum/tc/tn_TC_tutorial8.png

ყურადღებას გავამახვილებ SRM-ებზე. ამ დროს ყველა მონაწილე იყოფა ორ დივიზიონად, რომლებსაც სხვადასხვა problemset-ს სთავაზობენ. ყველა ახალი, რუხი (0-899 რეიტინგის მქონე) და მწვანე (900-1199 რეიტინგის მქონე) წევრი მეორე დივიზიონში ხვდება, ხოლო ლურჯები (1200-1499), ყვითლები (1500-2199) და წითლები (2200+) პირველ დივიზიონში. შესაბამისად, ამოცანებიც უფრო ძნელია პირველ დივიზიონში.
დივიზიონის შიგნით მონაწილეები იყოფიან ოთახებად. ყოველი ოთახი შეიცავს არაუმეტეს 20 კოდერის.
შეჯიბრი შედგება 2 ფაზისგან: coding phase, რომელიც 1 საათი და 15 წუთის განმავლობაში გრძლედება და რომლის დროსაც ხდება მოცემული სამი ამოცანის გაგზავნა, და challenge phase, რომელზეც 15 წუთია გამოყოფილი და რომლის დროსაც შესაძლებელია სხვა ამავე ოთახში მყოფი მონაწილეების კოდების ნახვა და დაჩელენჯება. ეს ორი ფაზა ერთმანეთისგან 5-წუთიანი შესვენებითაა გამოყოფილი. challenge phase-ის შემდეგ არაუმეტეს 20-30 წუთში საბოლოო შედეგები ვლინდება, ანუ ყველა კოდი, რომელიც ჩელენჯების შემდეგ გადარჩა, ტესტირდება ავტომატურად ბევრ ტესტზე და თუ ყველას გაივლის, სწორად ითვლება.

ასევე შეჯიბრების წერის დროს გაითვალისწინეთ, რომ ამოცანაზე დახარჯული დროის ათვლა შეჯიბრის დაწყების შემდეგ კი არა, არამედ ამოცანის გახსნის შემდეგ იწყება, ხოლო ამოცანაში დაწერილი ქულა არის ამ დროის უკუპროპორციული. ამიტომ უცებ სამივეს ნუ გახსნით :) ცნობისთვის, სწორ ამოხსნაში არ დაიწერება ამოცანის საწყისი წონის 30%-ზე ნაკლები. ასევე ამოხსნის ხელმეორედ გაგზავნისას ეს ამოხსნა ჯარიმდება ქულების 10%-ით.

და ბოლოს, რეიტინგი.
ყოველი SRM-ის ან tournament შეჯიბრის დაწერის შემდეგ ყოველი მასში მონაწილეობამიღებული კოდერის რეიტინგი იცვლება. მისი ცვლილების ფორმულა სადღაც საიტზე წერია, მაგრამ მაგაში დიდად ჩაღრმავებას არ გირჩევთ. არსი იმაშია, რომ რაც უფრო დიდია რეიტინგი, მით უფრო მაღალი ადგილი უნდა დაიკავოთ შეჯიბრის საერთო ცხრილში, რომ რეიტინგი კიდევ აგეწიოთ. აქ არსებითია, რომ სწორედ ცხრილის პოზიცია განსაზღვრავს მონაწილის წარმატებულობას და არა მის მიერ მოგროვებული ქულები (ხშირად 0 ამოხსნილი ამოცანით და 1 წარმატებული ჩელენჯითაც კი ამწევია რეიტინგი :) )
ცალკეული მონაწილეების რეიტინგის გარდა, არსებობს სასწავლებლების და ქვეყნების რეიტინგი, რომელიც გამოითვლება, როგორც სასწავლებლის ან ქვეყნის წარმომადგენელი მონაწილეების რეიტინგების წონითი საშუალო, სადაც პირველ ათეულს აქვს ბევრად უფრო დიდი წონა, ვიდრე დანარჩენ ნაწილს.

-----------------------------------

That's all folks. შეკითხვები თუ გექნებათ, დაწერეთ. Good luck and have fun!
წერილები: 133
gojira says:
2 აპრილი 2012, 0:48
ვინ ამოხსნა რო? =)

ისე დავდებ აქ Upsolving-ის ბმულს:
Upsolving
წერილები: 133
gojira says:
1 აპრილი 2012, 17:00
აი შეხედე. ვთქვათ იმ ერთადერთი ხისგან მარცხნივ L ცარიელი ადგილია, მარჯვნივ კი R. ავიღოთ Q = sqrt(N) + 1 და ვთქვათ L/Q = nL, ხოლო R/Q = nR (ანუ Q შუალედით რამდენი ხე ეტევა მარცხნივ და მარჯვნივ). ახლა ვნახოთ ისეთი მინიმალური X, რომ L/X < nL ან R/X < nR (ანუ ისეთი უმცირესი შუალედის სიგრძე, რომლისთვისაც nL და/ან nR ცალი აღარ ისმევა). ხომ გამოვა, რომ პასუხს უნდა დაემატოს (Q - X) * (nR + 1) * (nL + 1) - 1? (ანუ ყოველი შუალედი [X+1, Q]-დან გვაძლევს ზუსტად nL ხეს მარცხნივ და nR-ს მარჯვნივ, +1 იმიტომაა რომ შემიძლია სულ არ მქონდეს მარცხნივ/მარჯვნივ ხეები და -1 იმიტომ, რომ 1 ცალი ხე არ ჩავთვალო ბევრჯერ). ამის მერე Q გახდება X-ის ტოლი, nL ან nR ან ორივე შემცირდება და იგივეს გავიმეორებთ.

ეგ X დაახლოებით უნდა გამოვიდეს L/(nL-1) და R/(nR-1)-ს შორის მინიმალური, მაგრამ იქ კერძო შემთხვევებია როცა 0-ია ერთ-ერთი და ასე შემდეგ და ამიტომაც ორობითი ძებნა ვამჯობინე.
წერილები: 133
gojira says:
1 აპრილი 2012, 16:21
2 მილიარდია N და რა ხეირი O(N)-ისგან? :)

მე ასე ვხსნიდი k=1-ისთვის: O(sqrt(N))-ში დავითვალე პასუხი არაუმეტეს sqrt(N) ზომის შუალედებისთვის (წესით გასაგებია როგორც) და მერე ისევ O(sqrt(N))-ში დანარჩენებისთვის შემდეგი იდეით. რადგან შუალედის ზომა აღემატება ფესვს, დარგული ხეების რაოდენობა ფესვზე ნაკლებია. ამიტომ გადავარჩიოთ დარგული ხეების რაოდენობა. ასეთი რაოდენობა რამდენი განსხვავებული სიგრძის შუალედს შეესაბამება, ალბათ მარტივად შეიძლება იპოვო (მე დამეზარა და ორობითი ძებნა დავწერე, ანუ მთლად sqrt(N) დრო არ მაქვს). ისე მანდ კიდევ ერთი ხაფანგია, რომელიც მხოლოდ k=1-ისთვის ჩნდება.
წერილები: 133
gojira says:
1 აპრილი 2012, 0:52
კი.
წერილები: 133
gojira says:
1 აპრილი 2012, 0:05
როგორც ბევრმა იცით, ხვალ ტარდება ღია თასის გაზაფხულის გათამაშების მე-4 რაუნდი. ასევე შეამჩნევდით, რომ შეჯიბრების საიტი www.opencup.ru მთელი კვირის მანძილზე მიუწვდომელი იყო. სავარაუდოდ, იგივე პრობლემა იქნება ხვალაც. შეჯიბრის ორგანიზატორებმა გამოაქვეყნეს ბმულები, რომლების მეშვეობით შესაძლებელია სერვერზე პირდაპირი წვდომა.

პირველი დივიზონის მონაწილეებისთვის
მეორე დივიზონის მონაწილეებისთვის

ყველას წარმატებებს გისურვებთ. ხვალ შეჯიბრის შემდეგ შეგვიძლია ამოცანებზე აქ ვიმსჯელოთ.
წერილები: 133
gojira says:
31 მარტი 2012, 19:16
ისე კი ჩემპიონატზე 1 დღით ადრე უნდა რეგისტრირებულიყავი და რაღაც არა მგონია გექნა ეგ :)
წერილები: 133
gojira says:
31 მარტი 2012, 18:57
Practice Room-ში სცადე რამის გაგზავნა? ამის გარეშე შეჯიბრზე გამოსვლა უაზრობა იქნება.
წერილები: 133
gojira says:
31 მარტი 2012, 17:26
ლინკისთვის პოსტის მენიუში არის სპეციალური ღილაკი.
წერილები: 133
gojira says:
27 მარტი 2012, 11:51
ეგ იშვიათი შეცდომაა, ხან ფაილების არასწორ სახელებზე ხდება, ხან მეხსიერების არასწორად გამოყენებაზე. შენ რაღაც მასივები გაქვს არასაკმარისი ზომის.
წერილები: 133
gojira says:
24 მარტი 2012, 11:56
გლობალურად რაში უნდა დაგჭირდეს?

არ ვიცი ზუსტად, სატესტო კონტესტში შეგიძლია შეამოწმო.
წერილები: 133
gojira says:
31 იანვარი 2012, 18:30
ეგრე მარტივადაც არაა საქმე :)

აგერ გარჩევა: https://docs.google.com/document/d/107dr_S-8Uf0vG5oupvoc2zMNTXagpNr01T5bX2JgNWA/edit
წერილები: 133
gojira says:
18 იანვარი 2012, 15:55
C++-ში მასივების ინდექსაცია 0-დან ხდება, ანუ [100] მასივის ინდექსები 0..99 შუალედშია. შენ 1..100 ინდექსებს იყენებ პროგრამაში და ამიტომაც იყო არასწორი [100] მასივით.
წერილები: 133
gojira says:
7 იანვარი 2012, 4:45
საზოგადოდ, ტესტების გამოქვეყნებას ვერიდებით, იმიტომ რომ მიგვაჩნია რომ ამოცანის ამოხსნის პროცესში ალგორითმის სისწორის დასაბუთება და დაწერილი კოდის ტესტირებაც უნდა შედიოდეს.

კონკრეტულად ამ ამოცანის მე-14 ტესტის ჩვენი პასუხი ნამდვილად უფრო მოკლეა, ვიდრე ის, რომელიც შენს ყველა შესაძლო შემთხვევის განმხილველ პროგრამას გამოაქვს. ეტყობა შემთხვევების განხილვაში გაგეპარა შეცდომა. მე შენს ადგილას იმ ამოხსნის, რომელიც გასცდა ამ ტესტს და მე-14 ტესტზე ჩავარდნილი ამოხსნის პასუხებს შევამოწმებდი ბევრ შემთხვევით ტესტზე და ბოლოს გამოჩნდებოდა ტესტი, სადაც პასუხები განსხვავებულია.
წერილები: 133
gojira says:
3 იანვარი 2012, 17:32
კი გაგიტარებია უკვე, მაგრამ მაინც დავწერ. თუ შემავალი სტრიქონი გრძელია და მასში ყველა სიმბოლო ტოლია, ქვესტრიქონების შედარების გამო შენი ალგორითმი კვადრატული გამოვა: i-ურ ბიჯზე i სიგრძის ტოლ სტრიქონებს შეადარებ, რასაც i ოპერაცია დასჭირდება. ამ შემთხვევაში ჰეშირების გამოყენებისას უნდა "გარისკო" და სტრიქონების შედარება აღარ გააკეთო, რაც ცხადია ტოვებს შეცდომების ალბათობას, მაგრამ ის საკმარისად მცირეა ფიქსირებული ტესტების გასავლელად.
წერილები: 133
gojira says:
10 დეკემბერი 2011, 12:27
ejudge-Si calke registracia araa saWiro, imave momxmarebliT da paroliT Sedixar rac saitze.
წერილები: 133
gojira says:
8 ნოემბერი 2011, 22:13
სერვერის მხარეს არსებული ხარვეზის გამო გუნდ "FreeUni Javadoc"-ის ამოხსნა D ამოცანაზე არასწორად იყო ჩათვლილი. ხარვეზის აღმოჩენის შემდეგ მოხდა ამოხსნების თავიდან შემოწმება, რის შედეგადაც გუნდს ამოხსნა ჩაეთვალა და იგი მე-15-დან მე-8 ადგილზე გადავიდა. ასევე გუნდი მაღალი შედეგის წყალობით ნახევარფინალში იყო დაშვებული.
წერილები: 133
gojira says:
18 სექტემბერი 2011, 11:17
დაიწყო Russian Code Cup-ის ფინალი, იხილეთ მიმდინარე შედეგები აქ:
http://russiancodecup.ru/contest/5/results

ასევე ვიდეოტრანსლაციაც აქვს ღონისძიებას, მაგრამ ბოლო წუთები რაღაც აღარ მუშაობს: http://russiancodecup.ru/contest/5/video
წერილები: 133
gojira says:
20 აგვისტო 2011, 14:56
მე ჩემის მხვრივ მინდა მოვულოცო პირველი ხუთეულის თითოეულ მონაწილეს გამორჩეული შედეგისთვის :)
წერილები: 133
gojira says:
20 აგვისტო 2011, 11:20
კომპიუტერის საათი შეამოწმე. ეგ საათი შენი კომპიუტერის დროს უყურებს.
სიახლეები Facebook-ზე
მომავალი ღონისძიებები
მომავალი ღონისძიებების სია ცარიელია.
ღონისძიებების კალენდარი
მხარდამჭერები






ახალი კომენტარები
Dixtosa Episode II - Analysis...
Eშისაიდან მოვიდა 3**13?ისე 4 * 52 * 3**13 = 331M+ ...
Quick GeOlymp 2013 - ფინალური ეპიზოდი იწყება...
Upsolving ჩაირთო...
saba_tavdgiridze GeOlymp 2013 - ფინალური ეპიზოდი იწყება...
აღარ მინდა.:)...
saba_tavdgiridze GeOlymp 2013 - ფინალური ეპიზოდი იწყება...
B ამოცანის 17 ტესტს ვერ მიმანიშნებთ?...
tornike5 GeOlymp 2013 - ფინალის შესახებ...
ვაპირებდი იგივე მეკითხა მარა მეგონა უეჭველი იქნება...
giorgi123 GeOlymp 2013 - ფინალის შესახებ...
მადლობა.შარშან ფინალში ამოცანების ყურებით ვიფარგლე...
Elle GeOlymp 2013 - ფინალის შესახებ...
შარშან ფინალს codeblocks-ით წერდით?დავაყენეთ codeb...