Advertisement
n4wn4w

02. Jumping Sums26 August 2014

Mar 18th, 2015
313
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.03 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication1
  7. {
  8.     class Program
  9.     {
  10.         static void Main(string[] args)
  11.         {
  12.             // 1 2 3 5
  13.             // 4
  14.             // max sum = 15
  15.             string input = Console.ReadLine();
  16.             int jumps = int.Parse(Console.ReadLine());
  17.             int maxSum = int.MinValue;// za da trugva da mi tursi ot nai-malkoto chislo na int -2 milqrda
  18.             string[] StringNumbers = input.Split(' ');// masiv ot stringove koito da mi splitva po interval
  19.             int[] parsedNumbers = new int[StringNumbers.Length];// za da si napravim masiv ot integeri razdeleni s interval prisloqvame gornqit masiv ot stringove
  20.  
  21.             parsedNumbers = Array.ConvertAll(StringNumbers, int.Parse);// s tozi metod preobrazuvame string masiv v int masiv moje da se napravi i sus for ciukl
  22.             //for (int i = 0; i < StringNumbers.Length; i++) tova
  23.             // {
  24.             //     parsedNumbers[i] = int.Parse(StringNumbers[i]);
  25.             //  }//////////////////////////////////////////////// tova e for cukal za preobrazuvane na string masiv v int masiv
  26.  
  27.             for (int i = 0; i < parsedNumbers.Length; i++)
  28.             {
  29.                 int index = i;// tazi promenliva index mi durji inderksa na v for vunshniqt for cikul pravim si promenliva index za da ne smenqme i v for cikula tova mi e na4aloto ot tuk trqbva da pochnem purviqt put po4vame ot 0 index vtoriqt put ot 1
  30.                 int currentSum = parsedNumbers[index];// zima stoinostta na chisloto ot purviqt index koito trugvame primer pri index 2 chisloto mi e 3 i nie ot nego trugvame kato na4alna stoinost da natrupvame
  31.                 for (int j = 0; j < jumps; j++)
  32.                 {
  33.                     index += parsedNumbers[index];// za da zadvijim ska4aneto tozi index trqbva da se mesti kolkoto mi e stoinosta kato 4islo pod opredeleniqd index na koito sme
  34.                     if (index > parsedNumbers.Length - 1)// ako indeksa mi prehvurli pasedNumbers.length-1 minus 1 e zashtoto lenght mi e 4 a iamme samo 3 indexa 0 1 2 3
  35.                     {
  36.                         index = index % parsedNumbers.Length;// durji mi indexa v predelite na nashiqt masiv 0 1 2 3 // kato razdelim s % na duljinata na masiva mi vrushta ostatuka i to4no opredeleniqt index
  37.                     }
  38.                     currentSum += parsedNumbers[index];// tuk natrupvame sumata ot stoinosta na 4isloto pod opredeleniqt index
  39.                 }
  40.                 if (currentSum > maxSum)// za da namerim nai-golqmata stoinost stavnqvame ako maxSum mi e po malko ot currentSum da vliza v if i da prisloqva stoinostta na currentSum na maxSum
  41.                 {
  42.                     maxSum = currentSum;// edin ot na4inite za namirane na maksimalnata stoinost na razlichni 4ilovi stoinosti
  43.                 }
  44.                 // moje i da izpolzvame i tozi metod za namiraneto na nai-golqmoto 4islo maxSum = Math.Max(maxSum, currentSum);
  45.             }
  46.             Console.WriteLine("max sum = {0}", maxSum);
  47.         }
  48.     }
  49. }
  50.  
  51. /////// 2 reshenie s osht edim masiv za sumite  uprajnenie na natrupvane stoinosti v masiv koito ni durji sumi/presmetnati elementi/////////////////////////////////////
  52.  
  53.  // 1 2 3 5
  54.             // 4
  55.             // max sum = 15
  56.             string input = Console.ReadLine();
  57.             int jumps = int.Parse(Console.ReadLine());
  58.             int maxSum = int.MinValue;// za da trugva da mi tursi ot nai-malkoto chislo na int -2 milqrda
  59.             string[] StringNumbers = input.Split(' ');// masiv ot stringove koito da mi splitva po interval
  60.             int[] parsedNumbers = new int[StringNumbers.Length];// za da si napravim masiv ot integeri razdeleni s interval prisloqvame gornqit masiv ot stringove
  61.  
  62.             int[] sumsarr = new int[parsedNumbers.Length];
  63.             parsedNumbers = Array.ConvertAll(StringNumbers, int.Parse);// s tozi metod preobrazuvame string masiv v int masiv moje da se napravi i sus for ciukl
  64.             //for (int i = 0; i < StringNumbers.Length; i++) tova
  65.             // {
  66.             //     parsedNumbers[i] = int.Parse(StringNumbers[i]);
  67.             //  }//////////////////////////////////////////////// tova e for cukal za preobrazuvane na string masiv v int masiv
  68.  
  69.  
  70.             int hui = 0;
  71.  
  72.             for (int i = 0; i < parsedNumbers.Length; i++)
  73.             {
  74.                 int index = i;// tazi promenliva index mi durji inderksa na v for vunshniqt for cikul pravim si promenliva index za da ne smenqme i v for cikula tova mi e na4aloto ot tuk trqbva da pochnem purviqt put po4vame ot 0 index vtoriqt put ot 1
  75.                 int currentSum = parsedNumbers[index];// zima stoinostta na chisloto ot purviqt index koito trugvame primer pri index 2 chisloto mi e 3 i nie ot nego trugvame kato na4alna stoinost da natrupvame
  76.                
  77.                 for (int j = 0; j < jumps; j++)
  78.                 {
  79.                     index += parsedNumbers[index];// za da zadvijim ska4aneto tozi index trqbva da se mesti kolkoto mi e stoinosta kato 4islo pod opredeleniqd index na koito sme
  80.                     if (index > parsedNumbers.Length - 1)// ako indeksa mi prehvurli pasedNumbers.length-1 minus 1 e zashtoto lenght mi e 4 a iamme samo 3 indexa 0 1 2 3
  81.                     {
  82.                         index = index % parsedNumbers.Length;// durji mi indexa v predelite na nashiqt masiv 0 1 2 3 // kato razdelim s % na duljinata na masiva mi vrushta ostatuka i to4no opredeleniqt index
  83.                     }
  84.                    
  85.                     currentSum += parsedNumbers[index];// tuk natrupvame sumata ot stoinosta na 4isloto pod opredeleniqt index
  86.                     sumsarr[hui] = currentSum;
  87.                 }
  88.  
  89.                 hui++;
  90.             }
  91.  
  92.             for (int i = 0; i < sumsarr.Length; i++)
  93.             {
  94.                 if(sumsarr[i] > maxSum)
  95.                 {
  96.                     maxSum = sumsarr[i];
  97.                 }
  98.             }
  99.  
  100.             Console.WriteLine("max sum = {0}", maxSum);
  101.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement