From 88ebb94011f71e1362d8be51f65327f2e0cf1a9d Mon Sep 17 00:00:00 2001 From: nimrodcoder Date: Mon, 15 Oct 2018 18:25:09 +0530 Subject: [PATCH 01/10] Added new text file --- nimrodcoder.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 nimrodcoder.txt diff --git a/nimrodcoder.txt b/nimrodcoder.txt new file mode 100644 index 0000000..aa49e4a --- /dev/null +++ b/nimrodcoder.txt @@ -0,0 +1 @@ +I am a bad girl rawr rawr..... \ No newline at end of file From 5e80b1902be5ba9909e77fbc612006bfa2e04e03 Mon Sep 17 00:00:00 2001 From: nimrodcoder <31320835+nimrodcoder@users.noreply.github.com> Date: Mon, 15 Oct 2018 18:36:02 +0530 Subject: [PATCH 02/10] Updated the text file --- nimrodcoder.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nimrodcoder.txt b/nimrodcoder.txt index aa49e4a..bec04b9 100644 --- a/nimrodcoder.txt +++ b/nimrodcoder.txt @@ -1 +1 @@ -I am a bad girl rawr rawr..... \ No newline at end of file +I am a bad girl From 94e2a0c43579d6dbf39967227f8b8bcc2f65d249 Mon Sep 17 00:00:00 2001 From: nimrodcoder Date: Mon, 15 Oct 2018 18:39:00 +0530 Subject: [PATCH 03/10] added a new text file --- kartik.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 kartik.txt diff --git a/kartik.txt b/kartik.txt new file mode 100644 index 0000000..be38431 --- /dev/null +++ b/kartik.txt @@ -0,0 +1 @@ +Zxdcfvgbhnjk \ No newline at end of file From 4552b31d40ea96385d3edc8b5859163aa3a80ded Mon Sep 17 00:00:00 2001 From: nimrodcoder <31320835+nimrodcoder@users.noreply.github.com> Date: Mon, 15 Oct 2018 18:50:41 +0530 Subject: [PATCH 04/10] I did something --- kartik.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kartik.txt b/kartik.txt index be38431..edba6aa 100644 --- a/kartik.txt +++ b/kartik.txt @@ -1 +1 @@ -Zxdcfvgbhnjk \ No newline at end of file +hwllo nidbvkjbsvksfv From 8de31c73f11934be298e7a86e3daf2508d5af819 Mon Sep 17 00:00:00 2001 From: nimrodcoder <31320835+nimrodcoder@users.noreply.github.com> Date: Mon, 15 Oct 2018 18:52:09 +0530 Subject: [PATCH 05/10] look what you made me do? --- nimrodcoder.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nimrodcoder.txt b/nimrodcoder.txt index bec04b9..dbe6884 100644 --- a/nimrodcoder.txt +++ b/nimrodcoder.txt @@ -1 +1 @@ -I am a bad girl +I am a bad girl or am i? From 7ac81a597f5917c76f8d29fd07c2846f0ff7e907 Mon Sep 17 00:00:00 2001 From: kartik Date: Tue, 30 Oct 2018 23:23:24 +0530 Subject: [PATCH 06/10] Added ICPC folder --- ICPC/KCHESS | Bin 0 -> 33504 bytes ICPC/KCHESS.cpp | 85 +++++++++ ICPC/PNTWLL | Bin 0 -> 52672 bytes ICPC/PNTWLL.cpp | 69 +++++++ ICPC/REDCGAME.cpp | 32 ++++ ICPC/WORDGRID.cpp | 16 ++ ICPC/prettyprint.hpp | 444 +++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 646 insertions(+) create mode 100755 ICPC/KCHESS create mode 100644 ICPC/KCHESS.cpp create mode 100755 ICPC/PNTWLL create mode 100644 ICPC/PNTWLL.cpp create mode 100644 ICPC/REDCGAME.cpp create mode 100644 ICPC/WORDGRID.cpp create mode 100644 ICPC/prettyprint.hpp diff --git a/ICPC/KCHESS b/ICPC/KCHESS new file mode 100755 index 0000000000000000000000000000000000000000..34e201e62c76de823d8d5ca911d15fb501eb9993 GIT binary patch literal 33504 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 literal 0 HcmV?d00001 diff --git a/ICPC/KCHESS.cpp b/ICPC/KCHESS.cpp new file mode 100644 index 0000000..4fba906 --- /dev/null +++ b/ICPC/KCHESS.cpp @@ -0,0 +1,85 @@ +#include +using namespace std; + +#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) +#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) +#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) + +#define ll long long + +ll n,t,x,y,a,b; +int X[]={1,2,-1,-2,-1,-2,1,2}; +int Y[]={2,1,2,1,-2,-1,-2,-1}; +int X1[]={1,0,1,-1,0,-1,-1,1}; +int Y1[]={0,1,1,0,-1,1,-1,-1}; +vector > posknight; +vector > poscov; + +int32_t main() +{ + fast_io(); + cin>>t; + while(t--) + { + cin>>n; + for(int i=1;i<=n;i++) + { + + cin>>x>>y; + posknight.push_back({x,y}); + } + + cin>>a>>b; + + + for(int i=0;i p=make_pair(a+X1[i],b+Y1[i]); + if(find(poscov.begin(), poscov.end(), p)==poscov.end()) + { + // cout< + #include + #include + int main() + { + std::vector> v = {{1,2}, {3,4}, {5,6}}; + auto p = std::make_pair(3, 4); + + if(std::find(v.begin(), v.end(), p) != v.end()) + std::cout << "yes\n"; + }*/ \ No newline at end of file diff --git a/ICPC/PNTWLL b/ICPC/PNTWLL new file mode 100755 index 0000000000000000000000000000000000000000..ecea9e872c7e2346458396dc27ea5ca2bfcfa045 GIT binary patch literal 52672 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 F{}1)hp>6;G literal 0 HcmV?d00001 diff --git a/ICPC/PNTWLL.cpp b/ICPC/PNTWLL.cpp new file mode 100644 index 0000000..993a7b8 --- /dev/null +++ b/ICPC/PNTWLL.cpp @@ -0,0 +1,69 @@ +#include +using namespace std; + +#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) +#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) +#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) + +#define ll long long + +ll n,m,t,h,c,a,b; +map colours; +// int X[]={1,2,-1,-2,-1,-2,1,2}; +// int Y[]={2,1,2,1,-2,-1,-2,-1}; +// int X1[]={1,0,1,-1,0,-1,-1,1}; +// int Y1[]={0,1,1,0,-1,1,-1,-1}; +vector > student; +// vector > poscov; + +int32_t main() +{ + fast_io(); + cin>>t; + while(t--) + { + for(int i=0;i>n>>m; + int count=0; + for(int i=0;i>h; + student.push_back({h,0}); + } + + // cin>>a>>b; + + for(int i=0;i>c; + student[i].second=c; + } + + /*for(int i=0;i +using namespace std; + +#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) +#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) +#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) + +#define ll long long + +ll n,k; +ll a[55]; + +int32_t main() +{ + int t; + cin>>t; + while(t--) + { + cin>>n>>k; + for(int i=1;i<=n;i++) + { + cin>>a[i]; + } + + sort(a[i]); + + for(int i=1;i +using namespace std; + +#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) +#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) +#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) + +#define ll long long + +ll n; + +int32_t main() +{ + int t; + while() +} diff --git a/ICPC/prettyprint.hpp b/ICPC/prettyprint.hpp new file mode 100644 index 0000000..f0df2a7 --- /dev/null +++ b/ICPC/prettyprint.hpp @@ -0,0 +1,444 @@ +// Copyright Louis Delacroix 2010 - 2014. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// A pretty printing library for C++ +// +// Usage: +// Include this header, and operator<< will "just work". + +#ifndef H_PRETTY_PRINT +#define H_PRETTY_PRINT + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace pretty_print +{ + namespace detail + { + // SFINAE type trait to detect whether T::const_iterator exists. + + struct sfinae_base + { + using yes = char; + using no = yes[2]; + }; + + template + struct has_const_iterator : private sfinae_base + { + private: + template static yes & test(typename C::const_iterator*); + template static no & test(...); + public: + static const bool value = sizeof(test(nullptr)) == sizeof(yes); + using type = T; + }; + + template + struct has_begin_end : private sfinae_base + { + private: + template + static yes & f(typename std::enable_if< + std::is_same(&C::begin)), + typename C::const_iterator(C::*)() const>::value>::type *); + + template static no & f(...); + + template + static yes & g(typename std::enable_if< + std::is_same(&C::end)), + typename C::const_iterator(C::*)() const>::value, void>::type*); + + template static no & g(...); + + public: + static bool const beg_value = sizeof(f(nullptr)) == sizeof(yes); + static bool const end_value = sizeof(g(nullptr)) == sizeof(yes); + }; + + } // namespace detail + + + // Holds the delimiter values for a specific character type + + template + struct delimiters_values + { + using char_type = TChar; + const char_type * prefix; + const char_type * delimiter; + const char_type * postfix; + }; + + + // Defines the delimiter values for a specific container and character type + + template + struct delimiters + { + using type = delimiters_values; + static const type values; + }; + + + // Functor to print containers. You can use this directly if you want + // to specificy a non-default delimiters type. The printing logic can + // be customized by specializing the nested template. + + template , + typename TDelimiters = delimiters> + struct print_container_helper + { + using delimiters_type = TDelimiters; + using ostream_type = std::basic_ostream; + + template + struct printer + { + static void print_body(const U & c, ostream_type & stream) + { + using std::begin; + using std::end; + + auto it = begin(c); + const auto the_end = end(c); + + if (it != the_end) + { + for ( ; ; ) + { + stream << *it; + + if (++it == the_end) break; + + if (delimiters_type::values.delimiter != NULL) + stream << delimiters_type::values.delimiter; + } + } + } + }; + + print_container_helper(const T & container) + : container_(container) + { } + + inline void operator()(ostream_type & stream) const + { + if (delimiters_type::values.prefix != NULL) + stream << delimiters_type::values.prefix; + + printer::print_body(container_, stream); + + if (delimiters_type::values.postfix != NULL) + stream << delimiters_type::values.postfix; + } + + private: + const T & container_; + }; + + // Specialization for pairs + + template + template + struct print_container_helper::printer> + { + using ostream_type = typename print_container_helper::ostream_type; + + static void print_body(const std::pair & c, ostream_type & stream) + { + stream << c.first; + if (print_container_helper::delimiters_type::values.delimiter != NULL) + stream << print_container_helper::delimiters_type::values.delimiter; + stream << c.second; + } + }; + + // Specialization for tuples + + template + template + struct print_container_helper::printer> + { + using ostream_type = typename print_container_helper::ostream_type; + using element_type = std::tuple; + + template struct Int { }; + + static void print_body(const element_type & c, ostream_type & stream) + { + tuple_print(c, stream, Int<0>()); + } + + static void tuple_print(const element_type &, ostream_type &, Int) + { + } + + static void tuple_print(const element_type & c, ostream_type & stream, + typename std::conditional, std::nullptr_t>::type) + { + stream << std::get<0>(c); + tuple_print(c, stream, Int<1>()); + } + + template + static void tuple_print(const element_type & c, ostream_type & stream, Int) + { + if (print_container_helper::delimiters_type::values.delimiter != NULL) + stream << print_container_helper::delimiters_type::values.delimiter; + + stream << std::get(c); + + tuple_print(c, stream, Int()); + } + }; + + // Prints a print_container_helper to the specified stream. + + template + inline std::basic_ostream & operator<<( + std::basic_ostream & stream, + const print_container_helper & helper) + { + helper(stream); + return stream; + } + + + // Basic is_container template; specialize to derive from std::true_type for all desired container types + + template + struct is_container : public std::integral_constant::value && + detail::has_begin_end::beg_value && + detail::has_begin_end::end_value> { }; + + template + struct is_container : std::true_type { }; + + template + struct is_container : std::false_type { }; + + template + struct is_container> : std::true_type { }; + + template + struct is_container> : std::true_type { }; + + template + struct is_container> : std::true_type { }; + + + // Default delimiters + + template struct delimiters { static const delimiters_values values; }; + template const delimiters_values delimiters::values = { "[", ", ", "]" }; + template struct delimiters { static const delimiters_values values; }; + template const delimiters_values delimiters::values = { L"[", L", ", L"]" }; + + + // Delimiters for (multi)set and unordered_(multi)set + + template + struct delimiters< ::std::set, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::set, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::set, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::set, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::multiset, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::multiset, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::multiset, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::multiset, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::unordered_set, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_set, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::unordered_set, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_set, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::unordered_multiset, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_multiset, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::unordered_multiset, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_multiset, wchar_t>::values = { L"{", L", ", L"}" }; + + + // Delimiters for pair and tuple + + template struct delimiters, char> { static const delimiters_values values; }; + template const delimiters_values delimiters, char>::values = { "(", ", ", ")" }; + template struct delimiters< ::std::pair, wchar_t> { static const delimiters_values values; }; + template const delimiters_values delimiters< ::std::pair, wchar_t>::values = { L"(", L", ", L")" }; + + template struct delimiters, char> { static const delimiters_values values; }; + template const delimiters_values delimiters, char>::values = { "(", ", ", ")" }; + template struct delimiters< ::std::tuple, wchar_t> { static const delimiters_values values; }; + template const delimiters_values delimiters< ::std::tuple, wchar_t>::values = { L"(", L", ", L")" }; + + + // Type-erasing helper class for easy use of custom delimiters. + // Requires TCharTraits = std::char_traits and TChar = char or wchar_t, and MyDelims needs to be defined for TChar. + // Usage: "cout << pretty_print::custom_delims(x)". + + struct custom_delims_base + { + virtual ~custom_delims_base() { } + virtual std::ostream & stream(::std::ostream &) = 0; + virtual std::wostream & stream(::std::wostream &) = 0; + }; + + template + struct custom_delims_wrapper : custom_delims_base + { + custom_delims_wrapper(const T & t_) : t(t_) { } + + std::ostream & stream(std::ostream & s) + { + return s << print_container_helper, Delims>(t); + } + + std::wostream & stream(std::wostream & s) + { + return s << print_container_helper, Delims>(t); + } + + private: + const T & t; + }; + + template + struct custom_delims + { + template + custom_delims(const Container & c) : base(new custom_delims_wrapper(c)) { } + + std::unique_ptr base; + }; + + template + inline std::basic_ostream & operator<<(std::basic_ostream & s, const custom_delims & p) + { + return p.base->stream(s); + } + + + // A wrapper for a C-style array given as pointer-plus-size. + // Usage: std::cout << pretty_print_array(arr, n) << std::endl; + + template + struct array_wrapper_n + { + typedef const T * const_iterator; + typedef T value_type; + + array_wrapper_n(const T * const a, size_t n) : _array(a), _n(n) { } + inline const_iterator begin() const { return _array; } + inline const_iterator end() const { return _array + _n; } + + private: + const T * const _array; + size_t _n; + }; + + + // A wrapper for hash-table based containers that offer local iterators to each bucket. + // Usage: std::cout << bucket_print(m, 4) << std::endl; (Prints bucket 5 of container m.) + + template + struct bucket_print_wrapper + { + typedef typename T::const_local_iterator const_iterator; + typedef typename T::size_type size_type; + + const_iterator begin() const + { + return m_map.cbegin(n); + } + + const_iterator end() const + { + return m_map.cend(n); + } + + bucket_print_wrapper(const T & m, size_type bucket) : m_map(m), n(bucket) { } + + private: + const T & m_map; + const size_type n; + }; + +} // namespace pretty_print + + +// Global accessor functions for the convenience wrappers + +template +inline pretty_print::array_wrapper_n pretty_print_array(const T * const a, size_t n) +{ + return pretty_print::array_wrapper_n(a, n); +} + +template pretty_print::bucket_print_wrapper +bucket_print(const T & m, typename T::size_type n) +{ + return pretty_print::bucket_print_wrapper(m, n); +} + + +// Main magic entry point: An overload snuck into namespace std. +// Can we do better? + +namespace std +{ + // Prints a container to the stream using default delimiters + + template + inline typename enable_if< ::pretty_print::is_container::value, + basic_ostream &>::type + operator<<(basic_ostream & stream, const T & container) + { + return stream << ::pretty_print::print_container_helper(container); + } +} + +#endif // H_PRETTY_PRINT From 7918db9efb6901ca174178b072595d9861f366ae Mon Sep 17 00:00:00 2001 From: kartik Date: Tue, 30 Oct 2018 23:28:20 +0530 Subject: [PATCH 07/10] Removed ICPC folder --- ICPC/KCHESS | Bin 33504 -> 0 bytes ICPC/KCHESS.cpp | 85 --------- ICPC/PNTWLL | Bin 52672 -> 0 bytes ICPC/PNTWLL.cpp | 69 ------- ICPC/REDCGAME.cpp | 32 ---- ICPC/WORDGRID.cpp | 16 -- ICPC/prettyprint.hpp | 444 ------------------------------------------- 7 files changed, 646 deletions(-) delete mode 100755 ICPC/KCHESS delete mode 100644 ICPC/KCHESS.cpp delete mode 100755 ICPC/PNTWLL delete mode 100644 ICPC/PNTWLL.cpp delete mode 100644 ICPC/REDCGAME.cpp delete mode 100644 ICPC/WORDGRID.cpp delete mode 100644 ICPC/prettyprint.hpp diff --git a/ICPC/KCHESS b/ICPC/KCHESS deleted file mode 100755 index 34e201e62c76de823d8d5ca911d15fb501eb9993..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33504 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 diff --git a/ICPC/KCHESS.cpp b/ICPC/KCHESS.cpp deleted file mode 100644 index 4fba906..0000000 --- a/ICPC/KCHESS.cpp +++ /dev/null @@ -1,85 +0,0 @@ -#include -using namespace std; - -#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) -#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) -#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) - -#define ll long long - -ll n,t,x,y,a,b; -int X[]={1,2,-1,-2,-1,-2,1,2}; -int Y[]={2,1,2,1,-2,-1,-2,-1}; -int X1[]={1,0,1,-1,0,-1,-1,1}; -int Y1[]={0,1,1,0,-1,1,-1,-1}; -vector > posknight; -vector > poscov; - -int32_t main() -{ - fast_io(); - cin>>t; - while(t--) - { - cin>>n; - for(int i=1;i<=n;i++) - { - - cin>>x>>y; - posknight.push_back({x,y}); - } - - cin>>a>>b; - - - for(int i=0;i p=make_pair(a+X1[i],b+Y1[i]); - if(find(poscov.begin(), poscov.end(), p)==poscov.end()) - { - // cout< - #include - #include - int main() - { - std::vector> v = {{1,2}, {3,4}, {5,6}}; - auto p = std::make_pair(3, 4); - - if(std::find(v.begin(), v.end(), p) != v.end()) - std::cout << "yes\n"; - }*/ \ No newline at end of file diff --git a/ICPC/PNTWLL b/ICPC/PNTWLL deleted file mode 100755 index ecea9e872c7e2346458396dc27ea5ca2bfcfa045..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52672 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 F{}1)hp>6;G diff --git a/ICPC/PNTWLL.cpp b/ICPC/PNTWLL.cpp deleted file mode 100644 index 993a7b8..0000000 --- a/ICPC/PNTWLL.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#include -using namespace std; - -#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) -#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) -#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) - -#define ll long long - -ll n,m,t,h,c,a,b; -map colours; -// int X[]={1,2,-1,-2,-1,-2,1,2}; -// int Y[]={2,1,2,1,-2,-1,-2,-1}; -// int X1[]={1,0,1,-1,0,-1,-1,1}; -// int Y1[]={0,1,1,0,-1,1,-1,-1}; -vector > student; -// vector > poscov; - -int32_t main() -{ - fast_io(); - cin>>t; - while(t--) - { - for(int i=0;i>n>>m; - int count=0; - for(int i=0;i>h; - student.push_back({h,0}); - } - - // cin>>a>>b; - - for(int i=0;i>c; - student[i].second=c; - } - - /*for(int i=0;i -using namespace std; - -#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) -#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) -#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) - -#define ll long long - -ll n,k; -ll a[55]; - -int32_t main() -{ - int t; - cin>>t; - while(t--) - { - cin>>n>>k; - for(int i=1;i<=n;i++) - { - cin>>a[i]; - } - - sort(a[i]); - - for(int i=1;i -using namespace std; - -#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) -#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) -#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) - -#define ll long long - -ll n; - -int32_t main() -{ - int t; - while() -} diff --git a/ICPC/prettyprint.hpp b/ICPC/prettyprint.hpp deleted file mode 100644 index f0df2a7..0000000 --- a/ICPC/prettyprint.hpp +++ /dev/null @@ -1,444 +0,0 @@ -// Copyright Louis Delacroix 2010 - 2014. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// http://www.boost.org/LICENSE_1_0.txt) -// -// A pretty printing library for C++ -// -// Usage: -// Include this header, and operator<< will "just work". - -#ifndef H_PRETTY_PRINT -#define H_PRETTY_PRINT - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace pretty_print -{ - namespace detail - { - // SFINAE type trait to detect whether T::const_iterator exists. - - struct sfinae_base - { - using yes = char; - using no = yes[2]; - }; - - template - struct has_const_iterator : private sfinae_base - { - private: - template static yes & test(typename C::const_iterator*); - template static no & test(...); - public: - static const bool value = sizeof(test(nullptr)) == sizeof(yes); - using type = T; - }; - - template - struct has_begin_end : private sfinae_base - { - private: - template - static yes & f(typename std::enable_if< - std::is_same(&C::begin)), - typename C::const_iterator(C::*)() const>::value>::type *); - - template static no & f(...); - - template - static yes & g(typename std::enable_if< - std::is_same(&C::end)), - typename C::const_iterator(C::*)() const>::value, void>::type*); - - template static no & g(...); - - public: - static bool const beg_value = sizeof(f(nullptr)) == sizeof(yes); - static bool const end_value = sizeof(g(nullptr)) == sizeof(yes); - }; - - } // namespace detail - - - // Holds the delimiter values for a specific character type - - template - struct delimiters_values - { - using char_type = TChar; - const char_type * prefix; - const char_type * delimiter; - const char_type * postfix; - }; - - - // Defines the delimiter values for a specific container and character type - - template - struct delimiters - { - using type = delimiters_values; - static const type values; - }; - - - // Functor to print containers. You can use this directly if you want - // to specificy a non-default delimiters type. The printing logic can - // be customized by specializing the nested template. - - template , - typename TDelimiters = delimiters> - struct print_container_helper - { - using delimiters_type = TDelimiters; - using ostream_type = std::basic_ostream; - - template - struct printer - { - static void print_body(const U & c, ostream_type & stream) - { - using std::begin; - using std::end; - - auto it = begin(c); - const auto the_end = end(c); - - if (it != the_end) - { - for ( ; ; ) - { - stream << *it; - - if (++it == the_end) break; - - if (delimiters_type::values.delimiter != NULL) - stream << delimiters_type::values.delimiter; - } - } - } - }; - - print_container_helper(const T & container) - : container_(container) - { } - - inline void operator()(ostream_type & stream) const - { - if (delimiters_type::values.prefix != NULL) - stream << delimiters_type::values.prefix; - - printer::print_body(container_, stream); - - if (delimiters_type::values.postfix != NULL) - stream << delimiters_type::values.postfix; - } - - private: - const T & container_; - }; - - // Specialization for pairs - - template - template - struct print_container_helper::printer> - { - using ostream_type = typename print_container_helper::ostream_type; - - static void print_body(const std::pair & c, ostream_type & stream) - { - stream << c.first; - if (print_container_helper::delimiters_type::values.delimiter != NULL) - stream << print_container_helper::delimiters_type::values.delimiter; - stream << c.second; - } - }; - - // Specialization for tuples - - template - template - struct print_container_helper::printer> - { - using ostream_type = typename print_container_helper::ostream_type; - using element_type = std::tuple; - - template struct Int { }; - - static void print_body(const element_type & c, ostream_type & stream) - { - tuple_print(c, stream, Int<0>()); - } - - static void tuple_print(const element_type &, ostream_type &, Int) - { - } - - static void tuple_print(const element_type & c, ostream_type & stream, - typename std::conditional, std::nullptr_t>::type) - { - stream << std::get<0>(c); - tuple_print(c, stream, Int<1>()); - } - - template - static void tuple_print(const element_type & c, ostream_type & stream, Int) - { - if (print_container_helper::delimiters_type::values.delimiter != NULL) - stream << print_container_helper::delimiters_type::values.delimiter; - - stream << std::get(c); - - tuple_print(c, stream, Int()); - } - }; - - // Prints a print_container_helper to the specified stream. - - template - inline std::basic_ostream & operator<<( - std::basic_ostream & stream, - const print_container_helper & helper) - { - helper(stream); - return stream; - } - - - // Basic is_container template; specialize to derive from std::true_type for all desired container types - - template - struct is_container : public std::integral_constant::value && - detail::has_begin_end::beg_value && - detail::has_begin_end::end_value> { }; - - template - struct is_container : std::true_type { }; - - template - struct is_container : std::false_type { }; - - template - struct is_container> : std::true_type { }; - - template - struct is_container> : std::true_type { }; - - template - struct is_container> : std::true_type { }; - - - // Default delimiters - - template struct delimiters { static const delimiters_values values; }; - template const delimiters_values delimiters::values = { "[", ", ", "]" }; - template struct delimiters { static const delimiters_values values; }; - template const delimiters_values delimiters::values = { L"[", L", ", L"]" }; - - - // Delimiters for (multi)set and unordered_(multi)set - - template - struct delimiters< ::std::set, char> { static const delimiters_values values; }; - - template - const delimiters_values delimiters< ::std::set, char>::values = { "{", ", ", "}" }; - - template - struct delimiters< ::std::set, wchar_t> { static const delimiters_values values; }; - - template - const delimiters_values delimiters< ::std::set, wchar_t>::values = { L"{", L", ", L"}" }; - - template - struct delimiters< ::std::multiset, char> { static const delimiters_values values; }; - - template - const delimiters_values delimiters< ::std::multiset, char>::values = { "{", ", ", "}" }; - - template - struct delimiters< ::std::multiset, wchar_t> { static const delimiters_values values; }; - - template - const delimiters_values delimiters< ::std::multiset, wchar_t>::values = { L"{", L", ", L"}" }; - - template - struct delimiters< ::std::unordered_set, char> { static const delimiters_values values; }; - - template - const delimiters_values delimiters< ::std::unordered_set, char>::values = { "{", ", ", "}" }; - - template - struct delimiters< ::std::unordered_set, wchar_t> { static const delimiters_values values; }; - - template - const delimiters_values delimiters< ::std::unordered_set, wchar_t>::values = { L"{", L", ", L"}" }; - - template - struct delimiters< ::std::unordered_multiset, char> { static const delimiters_values values; }; - - template - const delimiters_values delimiters< ::std::unordered_multiset, char>::values = { "{", ", ", "}" }; - - template - struct delimiters< ::std::unordered_multiset, wchar_t> { static const delimiters_values values; }; - - template - const delimiters_values delimiters< ::std::unordered_multiset, wchar_t>::values = { L"{", L", ", L"}" }; - - - // Delimiters for pair and tuple - - template struct delimiters, char> { static const delimiters_values values; }; - template const delimiters_values delimiters, char>::values = { "(", ", ", ")" }; - template struct delimiters< ::std::pair, wchar_t> { static const delimiters_values values; }; - template const delimiters_values delimiters< ::std::pair, wchar_t>::values = { L"(", L", ", L")" }; - - template struct delimiters, char> { static const delimiters_values values; }; - template const delimiters_values delimiters, char>::values = { "(", ", ", ")" }; - template struct delimiters< ::std::tuple, wchar_t> { static const delimiters_values values; }; - template const delimiters_values delimiters< ::std::tuple, wchar_t>::values = { L"(", L", ", L")" }; - - - // Type-erasing helper class for easy use of custom delimiters. - // Requires TCharTraits = std::char_traits and TChar = char or wchar_t, and MyDelims needs to be defined for TChar. - // Usage: "cout << pretty_print::custom_delims(x)". - - struct custom_delims_base - { - virtual ~custom_delims_base() { } - virtual std::ostream & stream(::std::ostream &) = 0; - virtual std::wostream & stream(::std::wostream &) = 0; - }; - - template - struct custom_delims_wrapper : custom_delims_base - { - custom_delims_wrapper(const T & t_) : t(t_) { } - - std::ostream & stream(std::ostream & s) - { - return s << print_container_helper, Delims>(t); - } - - std::wostream & stream(std::wostream & s) - { - return s << print_container_helper, Delims>(t); - } - - private: - const T & t; - }; - - template - struct custom_delims - { - template - custom_delims(const Container & c) : base(new custom_delims_wrapper(c)) { } - - std::unique_ptr base; - }; - - template - inline std::basic_ostream & operator<<(std::basic_ostream & s, const custom_delims & p) - { - return p.base->stream(s); - } - - - // A wrapper for a C-style array given as pointer-plus-size. - // Usage: std::cout << pretty_print_array(arr, n) << std::endl; - - template - struct array_wrapper_n - { - typedef const T * const_iterator; - typedef T value_type; - - array_wrapper_n(const T * const a, size_t n) : _array(a), _n(n) { } - inline const_iterator begin() const { return _array; } - inline const_iterator end() const { return _array + _n; } - - private: - const T * const _array; - size_t _n; - }; - - - // A wrapper for hash-table based containers that offer local iterators to each bucket. - // Usage: std::cout << bucket_print(m, 4) << std::endl; (Prints bucket 5 of container m.) - - template - struct bucket_print_wrapper - { - typedef typename T::const_local_iterator const_iterator; - typedef typename T::size_type size_type; - - const_iterator begin() const - { - return m_map.cbegin(n); - } - - const_iterator end() const - { - return m_map.cend(n); - } - - bucket_print_wrapper(const T & m, size_type bucket) : m_map(m), n(bucket) { } - - private: - const T & m_map; - const size_type n; - }; - -} // namespace pretty_print - - -// Global accessor functions for the convenience wrappers - -template -inline pretty_print::array_wrapper_n pretty_print_array(const T * const a, size_t n) -{ - return pretty_print::array_wrapper_n(a, n); -} - -template pretty_print::bucket_print_wrapper -bucket_print(const T & m, typename T::size_type n) -{ - return pretty_print::bucket_print_wrapper(m, n); -} - - -// Main magic entry point: An overload snuck into namespace std. -// Can we do better? - -namespace std -{ - // Prints a container to the stream using default delimiters - - template - inline typename enable_if< ::pretty_print::is_container::value, - basic_ostream &>::type - operator<<(basic_ostream & stream, const T & container) - { - return stream << ::pretty_print::print_container_helper(container); - } -} - -#endif // H_PRETTY_PRINT From 8996d8361f05f384e24cfd85b1ce80b80e35af4b Mon Sep 17 00:00:00 2001 From: kartik Date: Tue, 30 Oct 2018 23:36:46 +0530 Subject: [PATCH 08/10] Added Algo folder --- Algorithms/DSU.cpp | 0 Algorithms/HeapSort | Bin 0 -> 9248 bytes Algorithms/HeapSort.cpp | 49 ++++ Algorithms/prettyprint.hpp | 444 +++++++++++++++++++++++++++++++++++++ 4 files changed, 493 insertions(+) create mode 100644 Algorithms/DSU.cpp create mode 100755 Algorithms/HeapSort create mode 100644 Algorithms/HeapSort.cpp create mode 100644 Algorithms/prettyprint.hpp diff --git a/Algorithms/DSU.cpp b/Algorithms/DSU.cpp new file mode 100644 index 0000000..e69de29 diff --git a/Algorithms/HeapSort b/Algorithms/HeapSort new file mode 100755 index 0000000000000000000000000000000000000000..e4a1529c6d36a8399ccc2659b3ea4de14c95fb1f GIT binary patch literal 9248 zcmeHNeQZK z#z#;9)$(Ygu3}8uv`Jm1ZtFJ2I*s)Y5}+znlPdUweQ(O9fE==RbZuF*rFg${-#w1~ z;;fyfN&905J)e6%@45G#d*8h$911k7x7%!j!7d&bL^YQ9B+L92V%I&ARJ>|2Q~1PE zagQhgrx=e-Zg#1l}bZj9*uAoKcwVh$Op(E~yT@OEwq}tH2oZ_-JhOG%J72b{{CBeS}1v z{GG(4OVD`D2vPgFS&{_y$p+)6OtxUmc3WXbaei8GE5&W9zv<@1sp4m>hASTGjI>r& zKGYd1>x^_KddqsNtIDb>z454bwH!D3C*2L3TVzi>j~-AI^L#v%10+9t_1gJgkA3$C zAGzjledH(G#W$b(TbT4|3i!PV0goWmw1`!Ks|^rO3*UoeUI8h^gmut(@q`L)DHTy17ZJqe?&BN!7su}HVkjtJX&gL=>i_eKm5q^H8| z3P!rchKBl@+8sOehrN|%TVL&6?Oj77HdE4${IRRH1F1p(WR}QzGgiHbrRWe>)D)5Q zYf4V6#NxAYZCX4b5RD6^sxzokokXc65(!qMRj zV8#7J(@;h)OL`g6H004CNiQavmgeXwNzWsihB*2yNzWphhBi7N>C-bkqJ03ggo=0T zlUJVBl7G_rM{YJY*Iyj!!49TfJSQZ&c<)S~NPiWEAGVh+trOzRPchIIt?U$#)<5pj zlGpYuIYX{!cyo6Sk{~k-fEb}!RsN#3Fzeos0$ciRC6TJolLF8zdNdrP}= z+qf(1Z8m!=T`G27F#GR&>=nc>5_4N%nC?bkJKrjP5iHvWvZp~eHhiuB36Urs`wHx` z&fX`3%;lY<`(Q(Dycv&{JdjQ%Mv^VVslf2Mz)0x}lr(7Dh9vb@i~&?Ka8vS=u}`_DUFlToE)V~DKS*$vku)SdrK7^C28`l!6V3X`4ZBHColkLj{S0w%q1-)+4*oM z4@@Kz82^MV@!7)%#xogY;=P04r+(UC{YD2`XNer7{XQK9PepZ>bO$Ml^baX%%_&Cu zY01PejVUECXJ`zk+(ahncNi}y=^jAtXV;JabN=oAWX9j(Z*Dlg;=03w#dN&vJ>aJL z(a%uV1Ect>sw{XO7D;0G}QJ-~k8a^POz0pK+7uYd{Yyg^{ww@ui3-L@rjW;h3I zGu*_dGbZ(UKPf0EtS`iJ$Vva?-_a-Oy4>qs3pbX|e%9G1o>;u@{)d+@BR1(^dlT2; z*F!P*UG8J{+B-@dOKj*`%0nc_*kn?$-2P({OZgGV4`R$afV1}YrmXziV9&%Hl;z4h zq*&U&3H}M#Kb|Y!J1HLl|8>ak%9S^o@;dN}5ce?TVUpLl+%MQ`TnnFf1YDluMK!LK zUoO^M<;O}iS9Sl4O)g)|Rqc0``&}z*Tps8_zsBX1^WFeIPQ*zcng7H8#te97_+%ij z<9jSY(I!Fb(gZ7}GZcZkW{Fe9K1r)#`JM?lW)BB;^pnKS(cvj(|99f5l4*fwq8)|DG^{i}ZO>`Rx z&l+!~x4f(>A*qUk6;X9~{4eEuxK`I^t4on5#2{5j&Xdf)l{ zJA|*mdv*v{woa6p8hHhqznteK4Po)vWf5eEuS_s~~@|c xcf(09w9gia_i?Dp2ij+CSRK~* zX@9k2{`)NNg*+2~$inw3zOd}`b<+Q2oV?#RN&eLN+^78T_XDJaWB9d+sqf_#@C%KL z>LE6)a5~%)aKGo!rug@$?~**bfcL)Q^Y@DP^XcZz4uK7olHNH!SWbdl@~6%xX%vd{ z9_m0$&CiFVpQ-r}kotE{$;0i6&)-AxN)VBLrsm;Ed>B0Vidyq327RjkSmBuDy9C{~ z3HZD6bu{MXtW!SYo`AkbYUcmEG7X>3)APjCb^SBR&-X#pJJaw#n1(-3#yQo`gNkph zcWnjVGgV!5fj<{t65eNul+ONX^iP2AE-=q8gHQ9eUac1o;+6nB7y5lFZy!|b)6}nh zk)Sd}E}T_-y2<6j&z1jnr%$raDB*7uU#RyOR{R^_yRlxZ`^i?sLwsw$x1|1}Df%CS zzYODgTdgm7cR(L=aUi1cQhkPChx`>{M8;F#d(jp%;zpvq-P?xZ-NxE&dP99vGb)Xf z1x4NH(%Yz{h*F~-it4*NqpiVCJ!C{ZV3p3bll4tXD0v$nFZlHMNaj_AQy zEVx$>cN?+2qCFPu3hSXnSJz&c^jXYH?9PDX|#td&;PY()|O-4htu1BJz2ePt4 zr-GvqX_JC{#^@-60f4<3=peCh77>MCcnDw$%6=V3KIn>-8Y|Ucb%1DWC^7 z*HM90&H=Yk)z$-=QqbzQWv#cYU*8mH)|>q`4FNLB3ptd}khNQ(*L{Aoe^Y&}Dx3Oz zvM{QOp{i`!7Ej1|g8e5}eN`3K;-_%&Rw=0}?35a<#Yav(*CLtfol3?Q@BgwIy#;S7 z6zSFz@i1nIR0|iU^-$0Vnq_3X;YT`<0Fm~+jS+f*Ix5`Rw-t&<^$xses&zkEO?q)8 z3KXFyOVKo^W}@h=@i@B-lYf~?mGNhTJ@t{mo^8!~Q-v;M(OP)pd%KKaE3gqWaR;|h z^bW^*gtt3tguVWn`Z6Q9TT#2a6W-QD1bMpEQwSWAlh|V*#^6P;K`qERn2pm@V^{w`u0x zhsF#%Y|rO;{=1xq6&2?11+y#A$hGHlzo8s1XT@pk>3nqycRTL?q}?Yq>HAK=_QfWN z6MjBy21$2WwjZ+lKndI@Boa$0W+eYf_W(GyM%Ta_t+HeWS8pW(k=4W&4*c_FUgFRKbPo z9IS6~C%&WX`Th0H@=4V`WzX|Ho&Aq2_WXBn{`>e-Y^boc|3QmA-zU?m|CeZTa=;qT z+mN~NsO6HqckI>{-(s&A$L2ptNM`{#S0`%~Iqhb_How&!{e z|9^&IHGY*2*?4$dCoTQ+y?C4k1+d1;G~>TOCpUh<=U~-=CcRAlupQ%Zi#^|mb}9RY zNmJSKSm@iJ$rq2G&(E(ZduzU^>BxFHs)!VE}0CQMT q2`!}To7YaReOkreNFOJ_y?9pR;d$fzkJe|Q{;QS30*lbv|33lN5>bKx literal 0 HcmV?d00001 diff --git a/Algorithms/HeapSort.cpp b/Algorithms/HeapSort.cpp new file mode 100644 index 0000000..43bf2ed --- /dev/null +++ b/Algorithms/HeapSort.cpp @@ -0,0 +1,49 @@ +#include +using namespace std; + +int a[]={0, 36, 21, 16, 31, 58, 41, 26, 59, 53, 97}; + +void heapify(int a[], int n, int i) +{ + if(i<=n && 2*i<=n) + { + int largest = i, left = 2*i, right = 2*i +1 ; + int index=((left<=n?a[left]:0)>(right<=n?a[right]:0))?left:right; //left and right mese maximum + if(a[largest]>a[index]) return; + if(largest != index && a[largest]0; i--) + { + // printf("i= %d\n", i); + heapify(a,n,i); + } + + for(int i=n;i>0;i--) + { + if(a[1] +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace pretty_print +{ + namespace detail + { + // SFINAE type trait to detect whether T::const_iterator exists. + + struct sfinae_base + { + using yes = char; + using no = yes[2]; + }; + + template + struct has_const_iterator : private sfinae_base + { + private: + template static yes & test(typename C::const_iterator*); + template static no & test(...); + public: + static const bool value = sizeof(test(nullptr)) == sizeof(yes); + using type = T; + }; + + template + struct has_begin_end : private sfinae_base + { + private: + template + static yes & f(typename std::enable_if< + std::is_same(&C::begin)), + typename C::const_iterator(C::*)() const>::value>::type *); + + template static no & f(...); + + template + static yes & g(typename std::enable_if< + std::is_same(&C::end)), + typename C::const_iterator(C::*)() const>::value, void>::type*); + + template static no & g(...); + + public: + static bool const beg_value = sizeof(f(nullptr)) == sizeof(yes); + static bool const end_value = sizeof(g(nullptr)) == sizeof(yes); + }; + + } // namespace detail + + + // Holds the delimiter values for a specific character type + + template + struct delimiters_values + { + using char_type = TChar; + const char_type * prefix; + const char_type * delimiter; + const char_type * postfix; + }; + + + // Defines the delimiter values for a specific container and character type + + template + struct delimiters + { + using type = delimiters_values; + static const type values; + }; + + + // Functor to print containers. You can use this directly if you want + // to specificy a non-default delimiters type. The printing logic can + // be customized by specializing the nested template. + + template , + typename TDelimiters = delimiters> + struct print_container_helper + { + using delimiters_type = TDelimiters; + using ostream_type = std::basic_ostream; + + template + struct printer + { + static void print_body(const U & c, ostream_type & stream) + { + using std::begin; + using std::end; + + auto it = begin(c); + const auto the_end = end(c); + + if (it != the_end) + { + for ( ; ; ) + { + stream << *it; + + if (++it == the_end) break; + + if (delimiters_type::values.delimiter != NULL) + stream << delimiters_type::values.delimiter; + } + } + } + }; + + print_container_helper(const T & container) + : container_(container) + { } + + inline void operator()(ostream_type & stream) const + { + if (delimiters_type::values.prefix != NULL) + stream << delimiters_type::values.prefix; + + printer::print_body(container_, stream); + + if (delimiters_type::values.postfix != NULL) + stream << delimiters_type::values.postfix; + } + + private: + const T & container_; + }; + + // Specialization for pairs + + template + template + struct print_container_helper::printer> + { + using ostream_type = typename print_container_helper::ostream_type; + + static void print_body(const std::pair & c, ostream_type & stream) + { + stream << c.first; + if (print_container_helper::delimiters_type::values.delimiter != NULL) + stream << print_container_helper::delimiters_type::values.delimiter; + stream << c.second; + } + }; + + // Specialization for tuples + + template + template + struct print_container_helper::printer> + { + using ostream_type = typename print_container_helper::ostream_type; + using element_type = std::tuple; + + template struct Int { }; + + static void print_body(const element_type & c, ostream_type & stream) + { + tuple_print(c, stream, Int<0>()); + } + + static void tuple_print(const element_type &, ostream_type &, Int) + { + } + + static void tuple_print(const element_type & c, ostream_type & stream, + typename std::conditional, std::nullptr_t>::type) + { + stream << std::get<0>(c); + tuple_print(c, stream, Int<1>()); + } + + template + static void tuple_print(const element_type & c, ostream_type & stream, Int) + { + if (print_container_helper::delimiters_type::values.delimiter != NULL) + stream << print_container_helper::delimiters_type::values.delimiter; + + stream << std::get(c); + + tuple_print(c, stream, Int()); + } + }; + + // Prints a print_container_helper to the specified stream. + + template + inline std::basic_ostream & operator<<( + std::basic_ostream & stream, + const print_container_helper & helper) + { + helper(stream); + return stream; + } + + + // Basic is_container template; specialize to derive from std::true_type for all desired container types + + template + struct is_container : public std::integral_constant::value && + detail::has_begin_end::beg_value && + detail::has_begin_end::end_value> { }; + + template + struct is_container : std::true_type { }; + + template + struct is_container : std::false_type { }; + + template + struct is_container> : std::true_type { }; + + template + struct is_container> : std::true_type { }; + + template + struct is_container> : std::true_type { }; + + + // Default delimiters + + template struct delimiters { static const delimiters_values values; }; + template const delimiters_values delimiters::values = { "[", ", ", "]" }; + template struct delimiters { static const delimiters_values values; }; + template const delimiters_values delimiters::values = { L"[", L", ", L"]" }; + + + // Delimiters for (multi)set and unordered_(multi)set + + template + struct delimiters< ::std::set, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::set, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::set, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::set, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::multiset, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::multiset, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::multiset, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::multiset, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::unordered_set, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_set, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::unordered_set, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_set, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::unordered_multiset, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_multiset, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::unordered_multiset, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_multiset, wchar_t>::values = { L"{", L", ", L"}" }; + + + // Delimiters for pair and tuple + + template struct delimiters, char> { static const delimiters_values values; }; + template const delimiters_values delimiters, char>::values = { "(", ", ", ")" }; + template struct delimiters< ::std::pair, wchar_t> { static const delimiters_values values; }; + template const delimiters_values delimiters< ::std::pair, wchar_t>::values = { L"(", L", ", L")" }; + + template struct delimiters, char> { static const delimiters_values values; }; + template const delimiters_values delimiters, char>::values = { "(", ", ", ")" }; + template struct delimiters< ::std::tuple, wchar_t> { static const delimiters_values values; }; + template const delimiters_values delimiters< ::std::tuple, wchar_t>::values = { L"(", L", ", L")" }; + + + // Type-erasing helper class for easy use of custom delimiters. + // Requires TCharTraits = std::char_traits and TChar = char or wchar_t, and MyDelims needs to be defined for TChar. + // Usage: "cout << pretty_print::custom_delims(x)". + + struct custom_delims_base + { + virtual ~custom_delims_base() { } + virtual std::ostream & stream(::std::ostream &) = 0; + virtual std::wostream & stream(::std::wostream &) = 0; + }; + + template + struct custom_delims_wrapper : custom_delims_base + { + custom_delims_wrapper(const T & t_) : t(t_) { } + + std::ostream & stream(std::ostream & s) + { + return s << print_container_helper, Delims>(t); + } + + std::wostream & stream(std::wostream & s) + { + return s << print_container_helper, Delims>(t); + } + + private: + const T & t; + }; + + template + struct custom_delims + { + template + custom_delims(const Container & c) : base(new custom_delims_wrapper(c)) { } + + std::unique_ptr base; + }; + + template + inline std::basic_ostream & operator<<(std::basic_ostream & s, const custom_delims & p) + { + return p.base->stream(s); + } + + + // A wrapper for a C-style array given as pointer-plus-size. + // Usage: std::cout << pretty_print_array(arr, n) << std::endl; + + template + struct array_wrapper_n + { + typedef const T * const_iterator; + typedef T value_type; + + array_wrapper_n(const T * const a, size_t n) : _array(a), _n(n) { } + inline const_iterator begin() const { return _array; } + inline const_iterator end() const { return _array + _n; } + + private: + const T * const _array; + size_t _n; + }; + + + // A wrapper for hash-table based containers that offer local iterators to each bucket. + // Usage: std::cout << bucket_print(m, 4) << std::endl; (Prints bucket 5 of container m.) + + template + struct bucket_print_wrapper + { + typedef typename T::const_local_iterator const_iterator; + typedef typename T::size_type size_type; + + const_iterator begin() const + { + return m_map.cbegin(n); + } + + const_iterator end() const + { + return m_map.cend(n); + } + + bucket_print_wrapper(const T & m, size_type bucket) : m_map(m), n(bucket) { } + + private: + const T & m_map; + const size_type n; + }; + +} // namespace pretty_print + + +// Global accessor functions for the convenience wrappers + +template +inline pretty_print::array_wrapper_n pretty_print_array(const T * const a, size_t n) +{ + return pretty_print::array_wrapper_n(a, n); +} + +template pretty_print::bucket_print_wrapper +bucket_print(const T & m, typename T::size_type n) +{ + return pretty_print::bucket_print_wrapper(m, n); +} + + +// Main magic entry point: An overload snuck into namespace std. +// Can we do better? + +namespace std +{ + // Prints a container to the stream using default delimiters + + template + inline typename enable_if< ::pretty_print::is_container::value, + basic_ostream &>::type + operator<<(basic_ostream & stream, const T & container) + { + return stream << ::pretty_print::print_container_helper(container); + } +} + +#endif // H_PRETTY_PRINT From b71f7838211cdfb3815a9b872435fe44353a08b9 Mon Sep 17 00:00:00 2001 From: kartik Date: Tue, 30 Oct 2018 23:39:21 +0530 Subject: [PATCH 09/10] Added ICPC folder --- ICPC/KCHESS | Bin 0 -> 33504 bytes ICPC/KCHESS.cpp | 85 +++++++++ ICPC/PNTWLL | Bin 0 -> 52672 bytes ICPC/PNTWLL.cpp | 69 +++++++ ICPC/REDCGAME.cpp | 32 ++++ ICPC/WORDGRID.cpp | 16 ++ ICPC/prettyprint.hpp | 444 +++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 646 insertions(+) create mode 100755 ICPC/KCHESS create mode 100644 ICPC/KCHESS.cpp create mode 100755 ICPC/PNTWLL create mode 100644 ICPC/PNTWLL.cpp create mode 100644 ICPC/REDCGAME.cpp create mode 100644 ICPC/WORDGRID.cpp create mode 100644 ICPC/prettyprint.hpp diff --git a/ICPC/KCHESS b/ICPC/KCHESS new file mode 100755 index 0000000000000000000000000000000000000000..34e201e62c76de823d8d5ca911d15fb501eb9993 GIT binary patch literal 33504 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 literal 0 HcmV?d00001 diff --git a/ICPC/KCHESS.cpp b/ICPC/KCHESS.cpp new file mode 100644 index 0000000..4fba906 --- /dev/null +++ b/ICPC/KCHESS.cpp @@ -0,0 +1,85 @@ +#include +using namespace std; + +#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) +#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) +#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) + +#define ll long long + +ll n,t,x,y,a,b; +int X[]={1,2,-1,-2,-1,-2,1,2}; +int Y[]={2,1,2,1,-2,-1,-2,-1}; +int X1[]={1,0,1,-1,0,-1,-1,1}; +int Y1[]={0,1,1,0,-1,1,-1,-1}; +vector > posknight; +vector > poscov; + +int32_t main() +{ + fast_io(); + cin>>t; + while(t--) + { + cin>>n; + for(int i=1;i<=n;i++) + { + + cin>>x>>y; + posknight.push_back({x,y}); + } + + cin>>a>>b; + + + for(int i=0;i p=make_pair(a+X1[i],b+Y1[i]); + if(find(poscov.begin(), poscov.end(), p)==poscov.end()) + { + // cout< + #include + #include + int main() + { + std::vector> v = {{1,2}, {3,4}, {5,6}}; + auto p = std::make_pair(3, 4); + + if(std::find(v.begin(), v.end(), p) != v.end()) + std::cout << "yes\n"; + }*/ \ No newline at end of file diff --git a/ICPC/PNTWLL b/ICPC/PNTWLL new file mode 100755 index 0000000000000000000000000000000000000000..ecea9e872c7e2346458396dc27ea5ca2bfcfa045 GIT binary patch literal 52672 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 F{}1)hp>6;G literal 0 HcmV?d00001 diff --git a/ICPC/PNTWLL.cpp b/ICPC/PNTWLL.cpp new file mode 100644 index 0000000..993a7b8 --- /dev/null +++ b/ICPC/PNTWLL.cpp @@ -0,0 +1,69 @@ +#include +using namespace std; + +#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) +#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) +#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) + +#define ll long long + +ll n,m,t,h,c,a,b; +map colours; +// int X[]={1,2,-1,-2,-1,-2,1,2}; +// int Y[]={2,1,2,1,-2,-1,-2,-1}; +// int X1[]={1,0,1,-1,0,-1,-1,1}; +// int Y1[]={0,1,1,0,-1,1,-1,-1}; +vector > student; +// vector > poscov; + +int32_t main() +{ + fast_io(); + cin>>t; + while(t--) + { + for(int i=0;i>n>>m; + int count=0; + for(int i=0;i>h; + student.push_back({h,0}); + } + + // cin>>a>>b; + + for(int i=0;i>c; + student[i].second=c; + } + + /*for(int i=0;i +using namespace std; + +#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) +#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) +#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) + +#define ll long long + +ll n,k; +ll a[55]; + +int32_t main() +{ + int t; + cin>>t; + while(t--) + { + cin>>n>>k; + for(int i=1;i<=n;i++) + { + cin>>a[i]; + } + + sort(a[i]); + + for(int i=1;i +using namespace std; + +#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) +#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) +#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) + +#define ll long long + +ll n; + +int32_t main() +{ + int t; + while() +} diff --git a/ICPC/prettyprint.hpp b/ICPC/prettyprint.hpp new file mode 100644 index 0000000..f0df2a7 --- /dev/null +++ b/ICPC/prettyprint.hpp @@ -0,0 +1,444 @@ +// Copyright Louis Delacroix 2010 - 2014. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) +// +// A pretty printing library for C++ +// +// Usage: +// Include this header, and operator<< will "just work". + +#ifndef H_PRETTY_PRINT +#define H_PRETTY_PRINT + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace pretty_print +{ + namespace detail + { + // SFINAE type trait to detect whether T::const_iterator exists. + + struct sfinae_base + { + using yes = char; + using no = yes[2]; + }; + + template + struct has_const_iterator : private sfinae_base + { + private: + template static yes & test(typename C::const_iterator*); + template static no & test(...); + public: + static const bool value = sizeof(test(nullptr)) == sizeof(yes); + using type = T; + }; + + template + struct has_begin_end : private sfinae_base + { + private: + template + static yes & f(typename std::enable_if< + std::is_same(&C::begin)), + typename C::const_iterator(C::*)() const>::value>::type *); + + template static no & f(...); + + template + static yes & g(typename std::enable_if< + std::is_same(&C::end)), + typename C::const_iterator(C::*)() const>::value, void>::type*); + + template static no & g(...); + + public: + static bool const beg_value = sizeof(f(nullptr)) == sizeof(yes); + static bool const end_value = sizeof(g(nullptr)) == sizeof(yes); + }; + + } // namespace detail + + + // Holds the delimiter values for a specific character type + + template + struct delimiters_values + { + using char_type = TChar; + const char_type * prefix; + const char_type * delimiter; + const char_type * postfix; + }; + + + // Defines the delimiter values for a specific container and character type + + template + struct delimiters + { + using type = delimiters_values; + static const type values; + }; + + + // Functor to print containers. You can use this directly if you want + // to specificy a non-default delimiters type. The printing logic can + // be customized by specializing the nested template. + + template , + typename TDelimiters = delimiters> + struct print_container_helper + { + using delimiters_type = TDelimiters; + using ostream_type = std::basic_ostream; + + template + struct printer + { + static void print_body(const U & c, ostream_type & stream) + { + using std::begin; + using std::end; + + auto it = begin(c); + const auto the_end = end(c); + + if (it != the_end) + { + for ( ; ; ) + { + stream << *it; + + if (++it == the_end) break; + + if (delimiters_type::values.delimiter != NULL) + stream << delimiters_type::values.delimiter; + } + } + } + }; + + print_container_helper(const T & container) + : container_(container) + { } + + inline void operator()(ostream_type & stream) const + { + if (delimiters_type::values.prefix != NULL) + stream << delimiters_type::values.prefix; + + printer::print_body(container_, stream); + + if (delimiters_type::values.postfix != NULL) + stream << delimiters_type::values.postfix; + } + + private: + const T & container_; + }; + + // Specialization for pairs + + template + template + struct print_container_helper::printer> + { + using ostream_type = typename print_container_helper::ostream_type; + + static void print_body(const std::pair & c, ostream_type & stream) + { + stream << c.first; + if (print_container_helper::delimiters_type::values.delimiter != NULL) + stream << print_container_helper::delimiters_type::values.delimiter; + stream << c.second; + } + }; + + // Specialization for tuples + + template + template + struct print_container_helper::printer> + { + using ostream_type = typename print_container_helper::ostream_type; + using element_type = std::tuple; + + template struct Int { }; + + static void print_body(const element_type & c, ostream_type & stream) + { + tuple_print(c, stream, Int<0>()); + } + + static void tuple_print(const element_type &, ostream_type &, Int) + { + } + + static void tuple_print(const element_type & c, ostream_type & stream, + typename std::conditional, std::nullptr_t>::type) + { + stream << std::get<0>(c); + tuple_print(c, stream, Int<1>()); + } + + template + static void tuple_print(const element_type & c, ostream_type & stream, Int) + { + if (print_container_helper::delimiters_type::values.delimiter != NULL) + stream << print_container_helper::delimiters_type::values.delimiter; + + stream << std::get(c); + + tuple_print(c, stream, Int()); + } + }; + + // Prints a print_container_helper to the specified stream. + + template + inline std::basic_ostream & operator<<( + std::basic_ostream & stream, + const print_container_helper & helper) + { + helper(stream); + return stream; + } + + + // Basic is_container template; specialize to derive from std::true_type for all desired container types + + template + struct is_container : public std::integral_constant::value && + detail::has_begin_end::beg_value && + detail::has_begin_end::end_value> { }; + + template + struct is_container : std::true_type { }; + + template + struct is_container : std::false_type { }; + + template + struct is_container> : std::true_type { }; + + template + struct is_container> : std::true_type { }; + + template + struct is_container> : std::true_type { }; + + + // Default delimiters + + template struct delimiters { static const delimiters_values values; }; + template const delimiters_values delimiters::values = { "[", ", ", "]" }; + template struct delimiters { static const delimiters_values values; }; + template const delimiters_values delimiters::values = { L"[", L", ", L"]" }; + + + // Delimiters for (multi)set and unordered_(multi)set + + template + struct delimiters< ::std::set, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::set, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::set, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::set, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::multiset, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::multiset, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::multiset, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::multiset, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::unordered_set, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_set, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::unordered_set, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_set, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::unordered_multiset, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_multiset, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::unordered_multiset, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_multiset, wchar_t>::values = { L"{", L", ", L"}" }; + + + // Delimiters for pair and tuple + + template struct delimiters, char> { static const delimiters_values values; }; + template const delimiters_values delimiters, char>::values = { "(", ", ", ")" }; + template struct delimiters< ::std::pair, wchar_t> { static const delimiters_values values; }; + template const delimiters_values delimiters< ::std::pair, wchar_t>::values = { L"(", L", ", L")" }; + + template struct delimiters, char> { static const delimiters_values values; }; + template const delimiters_values delimiters, char>::values = { "(", ", ", ")" }; + template struct delimiters< ::std::tuple, wchar_t> { static const delimiters_values values; }; + template const delimiters_values delimiters< ::std::tuple, wchar_t>::values = { L"(", L", ", L")" }; + + + // Type-erasing helper class for easy use of custom delimiters. + // Requires TCharTraits = std::char_traits and TChar = char or wchar_t, and MyDelims needs to be defined for TChar. + // Usage: "cout << pretty_print::custom_delims(x)". + + struct custom_delims_base + { + virtual ~custom_delims_base() { } + virtual std::ostream & stream(::std::ostream &) = 0; + virtual std::wostream & stream(::std::wostream &) = 0; + }; + + template + struct custom_delims_wrapper : custom_delims_base + { + custom_delims_wrapper(const T & t_) : t(t_) { } + + std::ostream & stream(std::ostream & s) + { + return s << print_container_helper, Delims>(t); + } + + std::wostream & stream(std::wostream & s) + { + return s << print_container_helper, Delims>(t); + } + + private: + const T & t; + }; + + template + struct custom_delims + { + template + custom_delims(const Container & c) : base(new custom_delims_wrapper(c)) { } + + std::unique_ptr base; + }; + + template + inline std::basic_ostream & operator<<(std::basic_ostream & s, const custom_delims & p) + { + return p.base->stream(s); + } + + + // A wrapper for a C-style array given as pointer-plus-size. + // Usage: std::cout << pretty_print_array(arr, n) << std::endl; + + template + struct array_wrapper_n + { + typedef const T * const_iterator; + typedef T value_type; + + array_wrapper_n(const T * const a, size_t n) : _array(a), _n(n) { } + inline const_iterator begin() const { return _array; } + inline const_iterator end() const { return _array + _n; } + + private: + const T * const _array; + size_t _n; + }; + + + // A wrapper for hash-table based containers that offer local iterators to each bucket. + // Usage: std::cout << bucket_print(m, 4) << std::endl; (Prints bucket 5 of container m.) + + template + struct bucket_print_wrapper + { + typedef typename T::const_local_iterator const_iterator; + typedef typename T::size_type size_type; + + const_iterator begin() const + { + return m_map.cbegin(n); + } + + const_iterator end() const + { + return m_map.cend(n); + } + + bucket_print_wrapper(const T & m, size_type bucket) : m_map(m), n(bucket) { } + + private: + const T & m_map; + const size_type n; + }; + +} // namespace pretty_print + + +// Global accessor functions for the convenience wrappers + +template +inline pretty_print::array_wrapper_n pretty_print_array(const T * const a, size_t n) +{ + return pretty_print::array_wrapper_n(a, n); +} + +template pretty_print::bucket_print_wrapper +bucket_print(const T & m, typename T::size_type n) +{ + return pretty_print::bucket_print_wrapper(m, n); +} + + +// Main magic entry point: An overload snuck into namespace std. +// Can we do better? + +namespace std +{ + // Prints a container to the stream using default delimiters + + template + inline typename enable_if< ::pretty_print::is_container::value, + basic_ostream &>::type + operator<<(basic_ostream & stream, const T & container) + { + return stream << ::pretty_print::print_container_helper(container); + } +} + +#endif // H_PRETTY_PRINT From 0d7b723c6f8213108e93b6033e3923cd1c51cdd5 Mon Sep 17 00:00:00 2001 From: kartik Date: Tue, 30 Oct 2018 23:50:14 +0530 Subject: [PATCH 10/10] Added a SPOJ folder --- spoj/496B | Bin 0 -> 16544 bytes spoj/496B.cpp | 40 + spoj/AAC1 | Bin 0 -> 13536 bytes spoj/AAC1'1.cpp | 0 spoj/AAC1.cpp | 72 + spoj/AAC11 | Bin 0 -> 39560 bytes spoj/ACC11 | Bin 0 -> 39704 bytes spoj/ACC11.cpp | 89 + spoj/ACODE | Bin 0 -> 17192 bytes spoj/ACODE.cpp | 44 + spoj/ACODEtest | Bin 0 -> 8776 bytes spoj/ACODEtest.cpp | 36 + spoj/AKBAR | Bin 0 -> 44696 bytes spoj/AKBAR.cpp | 105 + spoj/ALCATRAZ3 | Bin 0 -> 9504 bytes spoj/ALCATRAZ3.cpp | 102 + spoj/ALIEN | Bin 0 -> 9144 bytes spoj/ALIEN.cpp | 52 + spoj/ALLIZZWELL | Bin 0 -> 14840 bytes spoj/ALLIZZWELL.cpp | 101 + spoj/AMANPNT Input file #2 | 515831 +++++++++++++++++++++++++++++ spoj/AMANPNT output file #2 | 100 + spoj/APS | Bin 0 -> 9152 bytes spoj/APS.cpp | 40 + spoj/ASSIST | Bin 0 -> 22072 bytes spoj/ASSIST.cpp | 48 + spoj/ASSISTtest | Bin 0 -> 17416 bytes spoj/ASSISTtest.cpp | 34 + spoj/ATM | Bin 0 -> 9064 bytes spoj/ATM.cpp | 19 + spoj/Aman_and_Painting | Bin 0 -> 38088 bytes spoj/Aman_and_Painting.cpp | 113 + spoj/BRCKTS | Bin 0 -> 13984 bytes spoj/BRCKTS.cpp | 141 + spoj/BRCKTStest | Bin 0 -> 13976 bytes spoj/BRCKTStest.cpp | 126 + spoj/BUGLIFE | Bin 0 -> 42896 bytes spoj/BUGLIFE.cpp | 104 + spoj/BUGLIFEtest | Bin 0 -> 34992 bytes spoj/BUGLIFEtest.cpp | 72 + spoj/CCOST | Bin 0 -> 33496 bytes spoj/CCOST.cpp | 131 + spoj/CCOSTtest | Bin 0 -> 29648 bytes spoj/CCOSTtest.cpp | 142 + spoj/CHEFPRMQ | Bin 0 -> 35048 bytes spoj/CHEFPRMQ.cpp | 130 + spoj/CHICAGO | Bin 0 -> 44584 bytes spoj/CHICAGO.cpp | 99 + spoj/CHICAGOtest | Bin 0 -> 81032 bytes spoj/CHICAGOtest.cpp | 85 + spoj/CLEANRBT | Bin 0 -> 54272 bytes spoj/CLEANRBT.cpp | 161 + spoj/CLEANRBT1 | Bin 0 -> 54280 bytes spoj/CLEANRBT1.cpp | 186 + spoj/CODFURY | Bin 0 -> 9096 bytes spoj/CODFURY.cpp | 50 + spoj/COINS | Bin 0 -> 38728 bytes spoj/COINS.cpp | 21 + spoj/CPAIR | Bin 0 -> 29384 bytes spoj/CPAIR.cpp | 171 + spoj/CTRICK | Bin 0 -> 13552 bytes spoj/CTRICK#2 | Bin 0 -> 13552 bytes spoj/CTRICK#2.cpp | 70 + spoj/CTRICK.cpp | 68 + spoj/Chef_and_Prime_Queries | Bin 0 -> 78400 bytes spoj/Chef_and_Prime_Queries.cpp | 231 + spoj/Courier | Bin 0 -> 13432 bytes spoj/Courier.cpp | 135 + spoj/DCL2015E_Chef | Bin 0 -> 13584 bytes spoj/DCL2015E_Chef.cpp | 130 + spoj/DCL2015Etest | Bin 0 -> 13712 bytes spoj/DCL2015Etest.cpp | 217 + spoj/DQUERY | Bin 0 -> 21632 bytes spoj/DQUERY.cpp | 141 + spoj/DQUERYtest | Bin 0 -> 13088 bytes spoj/DQUERYtest.cpp | 98 + spoj/DQUERYtest2 | Bin 0 -> 21384 bytes spoj/DQUERYtest2.cpp | 77 + spoj/DQUERYtest2.java | 77 + spoj/EAGLE1 | Bin 0 -> 50704 bytes spoj/EAGLE1.cpp | 112 + spoj/EAGLE1TLE | Bin 0 -> 29256 bytes spoj/EAGLE1TLE.cpp | 122 + spoj/EAGLE1param | Bin 0 -> 29256 bytes spoj/EAGLE1param.cpp | 127 + spoj/EDIST | Bin 0 -> 16592 bytes spoj/EDIST.cpp | 40 + spoj/ELIS.cpp | 13 + spoj/ENCMSG | Bin 0 -> 14208 bytes spoj/ENCMSG.cpp | 46 + spoj/FLIPCOIN | Bin 0 -> 16032 bytes spoj/FLIPCOIN.cpp | 142 + spoj/GSS1 | Bin 0 -> 13672 bytes spoj/GSS1.cpp | 96 + spoj/GSS11 | Bin 0 -> 13352 bytes spoj/GSS11.cpp | 80 + spoj/GSS1test | Bin 0 -> 13416 bytes spoj/GSS1test.cpp | 94 + spoj/GSS3 | Bin 0 -> 13392 bytes spoj/GSS3.cpp | 111 + spoj/GSS3test | Bin 0 -> 13064 bytes spoj/GSS3test.cpp | 85 + spoj/GSS3try | Bin 0 -> 13392 bytes spoj/GSS3try.cpp | 119 + spoj/GSS4 | Bin 0 -> 13600 bytes spoj/GSS4.cpp | 162 + spoj/GSS4BIT | Bin 0 -> 13696 bytes spoj/GSS4BIT.cpp | 144 + spoj/GSS4test | Bin 0 -> 13136 bytes spoj/GSS4test.cpp | 80 + spoj/HAYBALE | Bin 0 -> 20336 bytes spoj/HAYBALE.cpp | 57 + spoj/HAYBALEtest | Bin 0 -> 20520 bytes spoj/HAYBALEtest.cpp | 47 + spoj/HIGHWAYS | Bin 0 -> 53008 bytes spoj/HIGHWAYS.cpp | 85 + spoj/HIGHWAYStest | Bin 0 -> 37984 bytes spoj/HIGHWAYStest.cpp | 80 + spoj/HORRIBLE | Bin 0 -> 13440 bytes spoj/HORRIBLE.cpp | 84 + spoj/HORRIBLEseg | Bin 0 -> 13392 bytes spoj/HORRIBLEseg.cpp | 120 + spoj/HORRIBLEsegtest | Bin 0 -> 13424 bytes spoj/HORRIBLEsegtest.cpp | 108 + spoj/HORRIBLEtest | Bin 0 -> 8912 bytes spoj/HORRIBLEtest.cpp | 48 + spoj/HOTELS | Bin 0 -> 9080 bytes spoj/HOTELS#2 | Bin 0 -> 14600 bytes spoj/HOTELS#2.cpp | 63 + spoj/HOTELS.cpp | 48 + spoj/JUMPPY | Bin 0 -> 9168 bytes spoj/JUMPPY.cpp | 20 + spoj/KAUSANDNIHA | Bin 0 -> 14056 bytes spoj/KAUSANDNIHA Input file #1 | 5019 + spoj/KAUSANDNIHA output file #1 | 4412 + spoj/KAUSANDNIHA.cpp | 75 + spoj/KCOMPRES.cpp | 24 + spoj/KGSS | Bin 0 -> 13536 bytes spoj/KGSS.cpp | 101 + spoj/KGSStest | Bin 0 -> 13032 bytes spoj/KGSStest.cpp | 77 + spoj/KNAPSACK | Bin 0 -> 11912 bytes spoj/KNAPSACK.cpp | 32 + spoj/KOPC12B | Bin 0 -> 13664 bytes spoj/KOPC12B.cpp | 81 + spoj/KPMATRIX | Bin 0 -> 20544 bytes spoj/KPMATRIX.cpp | 157 + spoj/KPMATRIXtest | Bin 0 -> 20336 bytes spoj/KPMATRIXtest.cpp | 199 + spoj/KPRIMEcodechef | Bin 0 -> 9144 bytes spoj/KPRIMEcodechef.cpp | 40 + spoj/KQUERY | Bin 0 -> 29336 bytes spoj/KQUERY#2 | Bin 0 -> 29416 bytes spoj/KQUERY#2.cpp | 131 + spoj/KQUERY.cpp | 112 + spoj/KQUERYMOtry | Bin 0 -> 22456 bytes spoj/KQUERYMOtry.cpp | 102 + spoj/KQUERYO | Bin 0 -> 34576 bytes spoj/KQUERYO.cpp | 120 + spoj/KQUERYOMo | Bin 0 -> 21984 bytes spoj/KQUERYOMo.cpp | 78 + spoj/KQUERYOtest | Bin 0 -> 34344 bytes spoj/KQUERYOtest.cpp | 54 + spoj/KQUERYOtest2 | Bin 0 -> 21960 bytes spoj/KQUERYOtest2.cpp | 46 + spoj/KQUERYtest | Bin 0 -> 9040 bytes spoj/KQUERYtest.cpp | 78 + spoj/LCMSUM | Bin 0 -> 39472 bytes spoj/LCMSUM.cpp | 141 + spoj/LCMSUM1 | Bin 0 -> 9160 bytes spoj/LCMSUM1.cpp | 61 + spoj/LCS.cpp | 0 spoj/MATSUM | Bin 0 -> 13416 bytes spoj/MATSUM.cpp | 82 + spoj/MATSUMtest | Bin 0 -> 13368 bytes spoj/MATSUMtest.cpp | 68 + spoj/MCHAOS | Bin 0 -> 65800 bytes spoj/MCHAOS.cpp | 92 + spoj/MCHAOStest | Bin 0 -> 65912 bytes spoj/MCHAOStest.cpp | 78 + spoj/MSE06H | Bin 0 -> 21432 bytes spoj/MSE06H.cpp | 62 + spoj/MSE06Htest | Bin 0 -> 21152 bytes spoj/MSE06Htest.cpp | 52 + spoj/Max_And | Bin 0 -> 9064 bytes spoj/Max_And.cpp | 23 + spoj/Max_Power | Bin 0 -> 9064 bytes spoj/Max_Power.cpp | 30 + spoj/Max_Product | Bin 0 -> 9072 bytes spoj/Max_Product.cpp | 38 + spoj/Max_Sum | Bin 0 -> 22648 bytes spoj/Max_Sum.cpp | 92 + spoj/Modular_GCD | Bin 0 -> 13680 bytes spoj/Modular_GCD.cpp | 50 + spoj/NATALIAG | Bin 0 -> 37040 bytes spoj/NATALIAG.cpp | 103 + spoj/NATALIAGtest | Bin 0 -> 35104 bytes spoj/NATALIAGtest.cpp | 83 + spoj/NINJA7 | Bin 0 -> 13712 bytes spoj/NINJA7.cpp | 101 + spoj/NINJA71 | Bin 0 -> 39160 bytes spoj/NINJA71.cpp | 55 + spoj/OMWG | Bin 0 -> 9064 bytes spoj/OMWG.cpp | 16 + spoj/ORDERSET | Bin 0 -> 93272 bytes spoj/ORDERSET.cpp | 133 + spoj/ORDERSETtest | Bin 0 -> 93280 bytes spoj/ORDERSETtest.cpp | 103 + spoj/ORMATRIX | Bin 0 -> 13432 bytes spoj/ORMATRIX.cpp | 89 + spoj/POSTERS | Bin 0 -> 63488 bytes spoj/POSTERS.cpp | 115 + spoj/POSTERStest | Bin 0 -> 60976 bytes spoj/POSTERStest.cpp | 159 + spoj/PPATH | Bin 0 -> 54488 bytes spoj/PPATH.cpp | 162 + spoj/PT07Y | Bin 0 -> 9280 bytes spoj/PT07Y.cpp | 92 + spoj/Princess_and_Dragons.cpp | 15 + spoj/Problem_sort | Bin 0 -> 36792 bytes spoj/Problem_sort.cpp | 98 + spoj/RMQ | Bin 0 -> 13792 bytes spoj/RMQ.cpp | 111 + spoj/ROADNET | Bin 0 -> 13296 bytes spoj/ROADNET.cpp | 66 + spoj/ROADNETtest | Bin 0 -> 8728 bytes spoj/ROADNETtest.cpp | 30 + spoj/RRSCHED | Bin 0 -> 19656 bytes spoj/RRSCHED.cpp | 15 + spoj/Random_function | Bin 0 -> 13904 bytes spoj/Random_function.cpp | 25 + spoj/Random_function2 | Bin 0 -> 13904 bytes spoj/Random_function2.cpp | 34 + spoj/SIZECON | Bin 0 -> 9168 bytes spoj/SIZECON.cpp | 12 + spoj/Sereja_and_backets | Bin 0 -> 14048 bytes spoj/Sereja_and_backets.cpp | 83 + spoj/Sheokand_and_number | Bin 0 -> 36592 bytes spoj/Sheokand_and_number.cpp | 67 + spoj/Spell_Bob | Bin 0 -> 9216 bytes spoj/Spell_Bob.cpp | 36 + spoj/UPDATEIT | Bin 0 -> 9472 bytes spoj/UPDATEIT.cpp | 65 + spoj/UPDATEITtest | Bin 0 -> 9672 bytes spoj/UPDATEITtest.cpp | 62 + spoj/USUBQSUB | Bin 0 -> 16056 bytes spoj/USUBQSUB.cpp | 105 + spoj/USUBQSUBtest | Bin 0 -> 13192 bytes spoj/USUBQSUBtest.cpp | 103 + spoj/WINDVANE | Bin 0 -> 13512 bytes spoj/WINDVANE.cpp | 146 + spoj/WINDVANEtest | Bin 0 -> 13464 bytes spoj/WINDVANEtest.cpp | 90 + spoj/chandan | Bin 0 -> 9168 bytes spoj/chandan.cpp | 0 spoj/chandanjava.class | Bin 0 -> 755 bytes spoj/chandanjava.java | 14 + spoj/courier1 | Bin 0 -> 13816 bytes spoj/courier1.cpp | 119 + spoj/prettyprint.hpp | 444 + spoj/topics to cover | 12 + spoj/try.py | 11 + 262 files changed, 536803 insertions(+) create mode 100755 spoj/496B create mode 100644 spoj/496B.cpp create mode 100755 spoj/AAC1 create mode 100644 spoj/AAC1'1.cpp create mode 100644 spoj/AAC1.cpp create mode 100755 spoj/AAC11 create mode 100755 spoj/ACC11 create mode 100644 spoj/ACC11.cpp create mode 100755 spoj/ACODE create mode 100644 spoj/ACODE.cpp create mode 100755 spoj/ACODEtest create mode 100644 spoj/ACODEtest.cpp create mode 100755 spoj/AKBAR create mode 100644 spoj/AKBAR.cpp create mode 100755 spoj/ALCATRAZ3 create mode 100644 spoj/ALCATRAZ3.cpp create mode 100755 spoj/ALIEN create mode 100644 spoj/ALIEN.cpp create mode 100755 spoj/ALLIZZWELL create mode 100644 spoj/ALLIZZWELL.cpp create mode 100644 spoj/AMANPNT Input file #2 create mode 100644 spoj/AMANPNT output file #2 create mode 100755 spoj/APS create mode 100644 spoj/APS.cpp create mode 100755 spoj/ASSIST create mode 100644 spoj/ASSIST.cpp create mode 100755 spoj/ASSISTtest create mode 100644 spoj/ASSISTtest.cpp create mode 100755 spoj/ATM create mode 100644 spoj/ATM.cpp create mode 100755 spoj/Aman_and_Painting create mode 100644 spoj/Aman_and_Painting.cpp create mode 100755 spoj/BRCKTS create mode 100644 spoj/BRCKTS.cpp create mode 100755 spoj/BRCKTStest create mode 100644 spoj/BRCKTStest.cpp create mode 100755 spoj/BUGLIFE create mode 100644 spoj/BUGLIFE.cpp create mode 100755 spoj/BUGLIFEtest create mode 100644 spoj/BUGLIFEtest.cpp create mode 100755 spoj/CCOST create mode 100644 spoj/CCOST.cpp create mode 100755 spoj/CCOSTtest create mode 100644 spoj/CCOSTtest.cpp create mode 100755 spoj/CHEFPRMQ create mode 100644 spoj/CHEFPRMQ.cpp create mode 100755 spoj/CHICAGO create mode 100644 spoj/CHICAGO.cpp create mode 100755 spoj/CHICAGOtest create mode 100644 spoj/CHICAGOtest.cpp create mode 100755 spoj/CLEANRBT create mode 100644 spoj/CLEANRBT.cpp create mode 100755 spoj/CLEANRBT1 create mode 100644 spoj/CLEANRBT1.cpp create mode 100755 spoj/CODFURY create mode 100644 spoj/CODFURY.cpp create mode 100755 spoj/COINS create mode 100644 spoj/COINS.cpp create mode 100755 spoj/CPAIR create mode 100644 spoj/CPAIR.cpp create mode 100755 spoj/CTRICK create mode 100755 spoj/CTRICK#2 create mode 100644 spoj/CTRICK#2.cpp create mode 100644 spoj/CTRICK.cpp create mode 100755 spoj/Chef_and_Prime_Queries create mode 100644 spoj/Chef_and_Prime_Queries.cpp create mode 100755 spoj/Courier create mode 100644 spoj/Courier.cpp create mode 100755 spoj/DCL2015E_Chef create mode 100644 spoj/DCL2015E_Chef.cpp create mode 100755 spoj/DCL2015Etest create mode 100644 spoj/DCL2015Etest.cpp create mode 100755 spoj/DQUERY create mode 100644 spoj/DQUERY.cpp create mode 100755 spoj/DQUERYtest create mode 100644 spoj/DQUERYtest.cpp create mode 100755 spoj/DQUERYtest2 create mode 100644 spoj/DQUERYtest2.cpp create mode 100644 spoj/DQUERYtest2.java create mode 100755 spoj/EAGLE1 create mode 100644 spoj/EAGLE1.cpp create mode 100755 spoj/EAGLE1TLE create mode 100644 spoj/EAGLE1TLE.cpp create mode 100755 spoj/EAGLE1param create mode 100644 spoj/EAGLE1param.cpp create mode 100755 spoj/EDIST create mode 100644 spoj/EDIST.cpp create mode 100644 spoj/ELIS.cpp create mode 100755 spoj/ENCMSG create mode 100644 spoj/ENCMSG.cpp create mode 100755 spoj/FLIPCOIN create mode 100644 spoj/FLIPCOIN.cpp create mode 100755 spoj/GSS1 create mode 100644 spoj/GSS1.cpp create mode 100755 spoj/GSS11 create mode 100644 spoj/GSS11.cpp create mode 100755 spoj/GSS1test create mode 100644 spoj/GSS1test.cpp create mode 100755 spoj/GSS3 create mode 100644 spoj/GSS3.cpp create mode 100755 spoj/GSS3test create mode 100644 spoj/GSS3test.cpp create mode 100755 spoj/GSS3try create mode 100644 spoj/GSS3try.cpp create mode 100755 spoj/GSS4 create mode 100644 spoj/GSS4.cpp create mode 100755 spoj/GSS4BIT create mode 100644 spoj/GSS4BIT.cpp create mode 100755 spoj/GSS4test create mode 100644 spoj/GSS4test.cpp create mode 100755 spoj/HAYBALE create mode 100644 spoj/HAYBALE.cpp create mode 100755 spoj/HAYBALEtest create mode 100644 spoj/HAYBALEtest.cpp create mode 100755 spoj/HIGHWAYS create mode 100644 spoj/HIGHWAYS.cpp create mode 100755 spoj/HIGHWAYStest create mode 100644 spoj/HIGHWAYStest.cpp create mode 100755 spoj/HORRIBLE create mode 100644 spoj/HORRIBLE.cpp create mode 100755 spoj/HORRIBLEseg create mode 100644 spoj/HORRIBLEseg.cpp create mode 100755 spoj/HORRIBLEsegtest create mode 100644 spoj/HORRIBLEsegtest.cpp create mode 100755 spoj/HORRIBLEtest create mode 100644 spoj/HORRIBLEtest.cpp create mode 100755 spoj/HOTELS create mode 100755 spoj/HOTELS#2 create mode 100644 spoj/HOTELS#2.cpp create mode 100644 spoj/HOTELS.cpp create mode 100755 spoj/JUMPPY create mode 100644 spoj/JUMPPY.cpp create mode 100755 spoj/KAUSANDNIHA create mode 100644 spoj/KAUSANDNIHA Input file #1 create mode 100644 spoj/KAUSANDNIHA output file #1 create mode 100644 spoj/KAUSANDNIHA.cpp create mode 100644 spoj/KCOMPRES.cpp create mode 100755 spoj/KGSS create mode 100644 spoj/KGSS.cpp create mode 100755 spoj/KGSStest create mode 100644 spoj/KGSStest.cpp create mode 100755 spoj/KNAPSACK create mode 100644 spoj/KNAPSACK.cpp create mode 100755 spoj/KOPC12B create mode 100644 spoj/KOPC12B.cpp create mode 100755 spoj/KPMATRIX create mode 100644 spoj/KPMATRIX.cpp create mode 100755 spoj/KPMATRIXtest create mode 100644 spoj/KPMATRIXtest.cpp create mode 100755 spoj/KPRIMEcodechef create mode 100644 spoj/KPRIMEcodechef.cpp create mode 100755 spoj/KQUERY create mode 100755 spoj/KQUERY#2 create mode 100644 spoj/KQUERY#2.cpp create mode 100644 spoj/KQUERY.cpp create mode 100755 spoj/KQUERYMOtry create mode 100644 spoj/KQUERYMOtry.cpp create mode 100755 spoj/KQUERYO create mode 100644 spoj/KQUERYO.cpp create mode 100755 spoj/KQUERYOMo create mode 100644 spoj/KQUERYOMo.cpp create mode 100755 spoj/KQUERYOtest create mode 100644 spoj/KQUERYOtest.cpp create mode 100755 spoj/KQUERYOtest2 create mode 100644 spoj/KQUERYOtest2.cpp create mode 100755 spoj/KQUERYtest create mode 100644 spoj/KQUERYtest.cpp create mode 100755 spoj/LCMSUM create mode 100644 spoj/LCMSUM.cpp create mode 100755 spoj/LCMSUM1 create mode 100644 spoj/LCMSUM1.cpp create mode 100644 spoj/LCS.cpp create mode 100755 spoj/MATSUM create mode 100644 spoj/MATSUM.cpp create mode 100755 spoj/MATSUMtest create mode 100644 spoj/MATSUMtest.cpp create mode 100755 spoj/MCHAOS create mode 100644 spoj/MCHAOS.cpp create mode 100755 spoj/MCHAOStest create mode 100644 spoj/MCHAOStest.cpp create mode 100755 spoj/MSE06H create mode 100644 spoj/MSE06H.cpp create mode 100755 spoj/MSE06Htest create mode 100644 spoj/MSE06Htest.cpp create mode 100755 spoj/Max_And create mode 100644 spoj/Max_And.cpp create mode 100755 spoj/Max_Power create mode 100644 spoj/Max_Power.cpp create mode 100755 spoj/Max_Product create mode 100644 spoj/Max_Product.cpp create mode 100755 spoj/Max_Sum create mode 100644 spoj/Max_Sum.cpp create mode 100755 spoj/Modular_GCD create mode 100644 spoj/Modular_GCD.cpp create mode 100755 spoj/NATALIAG create mode 100644 spoj/NATALIAG.cpp create mode 100755 spoj/NATALIAGtest create mode 100644 spoj/NATALIAGtest.cpp create mode 100755 spoj/NINJA7 create mode 100644 spoj/NINJA7.cpp create mode 100755 spoj/NINJA71 create mode 100644 spoj/NINJA71.cpp create mode 100755 spoj/OMWG create mode 100644 spoj/OMWG.cpp create mode 100755 spoj/ORDERSET create mode 100644 spoj/ORDERSET.cpp create mode 100755 spoj/ORDERSETtest create mode 100644 spoj/ORDERSETtest.cpp create mode 100755 spoj/ORMATRIX create mode 100644 spoj/ORMATRIX.cpp create mode 100755 spoj/POSTERS create mode 100644 spoj/POSTERS.cpp create mode 100755 spoj/POSTERStest create mode 100644 spoj/POSTERStest.cpp create mode 100755 spoj/PPATH create mode 100644 spoj/PPATH.cpp create mode 100755 spoj/PT07Y create mode 100644 spoj/PT07Y.cpp create mode 100644 spoj/Princess_and_Dragons.cpp create mode 100755 spoj/Problem_sort create mode 100644 spoj/Problem_sort.cpp create mode 100755 spoj/RMQ create mode 100644 spoj/RMQ.cpp create mode 100755 spoj/ROADNET create mode 100644 spoj/ROADNET.cpp create mode 100755 spoj/ROADNETtest create mode 100644 spoj/ROADNETtest.cpp create mode 100755 spoj/RRSCHED create mode 100644 spoj/RRSCHED.cpp create mode 100755 spoj/Random_function create mode 100644 spoj/Random_function.cpp create mode 100755 spoj/Random_function2 create mode 100644 spoj/Random_function2.cpp create mode 100755 spoj/SIZECON create mode 100644 spoj/SIZECON.cpp create mode 100755 spoj/Sereja_and_backets create mode 100644 spoj/Sereja_and_backets.cpp create mode 100755 spoj/Sheokand_and_number create mode 100644 spoj/Sheokand_and_number.cpp create mode 100755 spoj/Spell_Bob create mode 100644 spoj/Spell_Bob.cpp create mode 100755 spoj/UPDATEIT create mode 100644 spoj/UPDATEIT.cpp create mode 100755 spoj/UPDATEITtest create mode 100644 spoj/UPDATEITtest.cpp create mode 100755 spoj/USUBQSUB create mode 100644 spoj/USUBQSUB.cpp create mode 100755 spoj/USUBQSUBtest create mode 100644 spoj/USUBQSUBtest.cpp create mode 100755 spoj/WINDVANE create mode 100644 spoj/WINDVANE.cpp create mode 100755 spoj/WINDVANEtest create mode 100644 spoj/WINDVANEtest.cpp create mode 100755 spoj/chandan create mode 100644 spoj/chandan.cpp create mode 100644 spoj/chandanjava.class create mode 100644 spoj/chandanjava.java create mode 100755 spoj/courier1 create mode 100644 spoj/courier1.cpp create mode 100644 spoj/prettyprint.hpp create mode 100644 spoj/topics to cover create mode 100644 spoj/try.py diff --git a/spoj/496B b/spoj/496B new file mode 100755 index 0000000000000000000000000000000000000000..a09812db24b82765ec05cda1760eb3d327ee5bf5 GIT binary patch literal 16544 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 +using namespace std; +#define ll long long + +string a,b; +ll dp[2005][2005]; + +int main() +{ + int t; + cin>>t; + while(t--) + { + cin>>a>>b; + memset(dp,0,sizeof(dp)); + + for(int i=1;i<=a.length();i++) + { + dp[i][0]=i; + } + + for(int i=1;i<=b.length();i++) + { + dp[0][i]=i; + } + + for(int i=1;i<=a.length();i++) + { + for(int j=1;j<=b.length();j++) + { + if(a[i-1]!=b[j-1]) + dp[i][j]=1+dp[i-1][j]; + else + dp[i][j]=dp[i-1][j-1]; + } + } + + printf("%lld\n",dp[a.length()][b.length()]); + } +} \ No newline at end of file diff --git a/spoj/AAC1 b/spoj/AAC1 new file mode 100755 index 0000000000000000000000000000000000000000..f69520720df46869b94b0abbf6c5d632694b2dd8 GIT binary patch literal 13536 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 literal 0 HcmV?d00001 diff --git a/spoj/AAC1'1.cpp b/spoj/AAC1'1.cpp new file mode 100644 index 0000000..e69de29 diff --git a/spoj/AAC1.cpp b/spoj/AAC1.cpp new file mode 100644 index 0000000..a5ee979 --- /dev/null +++ b/spoj/AAC1.cpp @@ -0,0 +1,72 @@ +#include +using namespace std; +long long int a[10000][10000]; +bool vis[10000]; + + + +int main() +{ + long long int t; + cin>>t; + while(t--) + { + long long int n,m,x,y; + cin>>n>>m; + + memset(a,2,sizeof(a)); + memset(vis,false,sizeof(vis)); + + for(long long int i=0;i>x>>y; + a[x-1][y-1]=1; + a[y-1][x-1]=1; + } + + // stack p; + long long int dist[n]; + memset(dist,2,sizeof(dist)); + + long long int min_index=0; + dist[0]=0; + + while(min_index!=n-1) + { + long long int index=min_index; + vis[index]=true; + + for(long long int i=0;idist[i]?dist[i]:(dist[index]+a[index][i]); + // cout<@Kj9UnZLf6k0Xt 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 literal 0 HcmV?d00001 diff --git a/spoj/ACC11 b/spoj/ACC11 new file mode 100755 index 0000000000000000000000000000000000000000..fc4460704c5a0a33e631b310985ccaa9f99b0ced GIT binary patch literal 39704 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 literal 0 HcmV?d00001 diff --git a/spoj/ACC11.cpp b/spoj/ACC11.cpp new file mode 100644 index 0000000..ce9a593 --- /dev/null +++ b/spoj/ACC11.cpp @@ -0,0 +1,89 @@ +//solving ACC1 using min priority queue +#include +using namespace std; +#define SIZE 100002 + +vector > adj[SIZE]; +int dist[SIZE]; +bool vis[SIZE]; + +void addedge(int u,int v, int weight) +{ + adj[u].push_back(make_pair(v,weight)); + adj[v].push_back(make_pair(u,weight)); +} + +void dijkstra() +{ + memset(vis,false,sizeof(vis)); + dist[1]=0; + multiset > s; + + s.insert(make_pair(0,1)); + + while(!s.empty()) + { + pair p = *s.begin(); + s.erase(s.begin()); + + int x=p.second; + int wei=p.first; + + if(vis[x]) continue; + + vis[x]=true; + + for(int i=0;i>t; + while(t--) + { + int n,m; + cin>>n>>m; + + for(int i=0;i>x>>y; + addedge(x,y,1); + } + + /*for(int i=0;i_~uY5*&QsO{e=N>7~=1>AsDD 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 iTgg#%X!xo8FDDRgA%3&P|KwU3EQVR% +using namespace std; +#define ll long long + +string n; +// mapv; +ll dp[50007]; + +ll acode(string s) +{ + memset(dp,0,sizeof(dp)); + dp[0]=1; + int j,n=s.length(); + for(int i=1;i9 && j<27) + { + if(i==1) + dp[i]=dp[i]+1; + else + dp[i]=dp[i]+dp[i-2]; + } + } + + return dp[n-1]; +} + +int main() +{ + while(true) + { + cin>>n; + if(n!="0") + { + printf("%lld\n",acode(n)); + continue; + } + else + return 0; + } +} \ No newline at end of file diff --git a/spoj/ACODEtest b/spoj/ACODEtest new file mode 100755 index 0000000000000000000000000000000000000000..2448095e07e2b50d05f96770a809d6b95159512a GIT binary patch literal 8776 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 +#include +int main() +{ + char a[5010]; + int i,j; + scanf("%s",a); + while(a[0]!='0') + { + + int n= strlen(a); + long long int b[n]; + for(i=0;i9 && j<27) + { + if(i==1) + b[i]= b[i] + 1; + else + b[i]= b[i] + b[i-2]; + } + + } + printf("%lld\n",b[n-1]); + scanf("%s",a); + } + if(a[0]=='0') + return 0; +} \ No newline at end of file diff --git a/spoj/AKBAR b/spoj/AKBAR new file mode 100755 index 0000000000000000000000000000000000000000..1be146d6241c1005f9308855ef7337622c08d58d GIT binary patch literal 44696 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 +using namespace std; +#define SIZE 1000002 + +vector > adj[SIZE]; +// long long bit[SIZE]; +queue q; +bool vis[SIZE]; + +void addedge(int u,int v, int weight) +{ + adj[u].push_back(make_pair(v,weight)); + adj[v].push_back(make_pair(u,weight)); +} + +int main() +{ + int t; + scanf("%d",&t); + while(t--) + { + long long n,r,m; + int flag=0; + scanf("%lld %lld %lld",&n,&r,&m); + + for(int i=0;iY7pcnK``@XMRA{qoYs4czI-kV6v-mNfEqPCYWC)#~|k1K5831-O6vb-3N(e zA2HD?-+4~DL>=!MVM@2pk|MZICYX1duwc%1UxOXh^YfBhDR!#zrt6mqRe$EHxnjj& zw6C#Y#b9{(V01XSbNSAu#^sF--bBp1Qns7?lkU0=J+dV3M-L>b^E^B>2PnV${+jF? zVb7Z51NQPmW#4Rh@YAX?(x)yUA7;DUc3~@%7$6aUsocISaH*ZrrHIP+l*m{-4gLx6 zxh3>3OoKa7u~Pb(Y4q!Xd+=CkBLI&Tg#24PrTj;y!7l@^77N9QyB8_USJaQ_6+GnU z;tU_&1%&ZS7~#+Z573x33SHki6dTqPMlf#Zy3ilnp?5~MMiWLP-ZB_WBq9l+w{@@A z!;!dxyVti2#)c!^!M?$WnO8bzbC(fMw1v8iy1LLnFs>W%VAKE*2y_Cg?+YfPAsq$9 zBf+7zZoRu!4|Fx^on7^)#pVrNMpHDF(4iG+Xd8|it#yGN5|73cfzD_tl@?Q_%cu`U zhXvXhGMl(PX`m5$XlGCl8j+n*0|Mo$Mh^v{y{^5jxkX>;UFltArZ;WU>%9%!Zw_I{ ztfhG?kTUMf@zBYPRj`=tLZXQ-9^UY1W%evkIthtk36TMjtTQrET9<7+hA zIqj`m#{8VOS?sN9vDk9PEPv#yZ=pRRS=|G}@nKYK%Q@#sK(XkMACWn zMcCz>eMAP?i(4jk!-mqSJ(Htr^{u5zo#|JKvB%W^eg% z8jGt=>1fLtvcwpBQhTnYlH;kKE9tZj){F^#;UY) zhjer;=}9|dGC7`{pLPz&a>|Ui ze3s3g9EYgEb0Y~ia(VZWcr7Q^ka%6G&Vq10Adg#Vr~M%s#mwH8^MOekwzTs`qdBe* zP-8+(lt$^5NXsG2H!nBEY{~nc+mp#=F>$|qs&#v>7@r626PqwTCrLa- zpQ~{Xu*0VHNzy$p(>t_z<*Xt)|u(HXY+QMwu!=DUvi4FLW+ZH(<=|B}L@id^QAAp|)9|S*vwwwjO z0e%JiVa$~>v}XZYvjqGJ@K$gGJPdvX{Ab{FP9n1H?i9A2Zrh^S6#{KEVWGrtws6+9Klk5GQI%l(4A*;RAM5pa19mNmPUe%GnFYWL63Tur0p>s`LM ztI6-G^}CifyFAc?ezU7W_UnVFe=Ypj$@7Qc+o8qt`NrGOU=Es>Se#!SR# zg5DWEDXVLhXu#4ZS|Hza-|CgAMM~!L&q5_vsQVPn3nH3hM4#Tu#)u!W`-tW4d>Mx+ z^I2ugZpwV-SfMJ+XQdiplAKE_P0Yb*Y&k?c2VRv@e%;aeis*KeiQ`V6Ofh~y$z1PR zrAK=J5tol?CflPaeJpP&bGg@*yj10z*8lrA-(#&My`;wVCyF0a{G8(NDE^+}Hx;+~ z;rWC1Vh1;=5L?&M@~~%VPhWD_NP1Rz8@#p48dt7W~DokO^Cai3y8Rk?LtjJt(Tt@mQQIv2Mn z#^;KoCG~I1?GwfN^91h?#rS+d$66~n#FujMnZi8W!UW&1igBz?wf>9o1)`%Qp1)rg z>+|lGM`@0iiH~w~o^xp5w27(pr~T57{`XnNg*+2JV!^!%AG6@C(*Htn1V=d{UTa-4 zJ+(h~11JBNEq?Y({i);f3h+|x`nA+wDCqP?#O3}DY4RUY-x>MM2llbT`TN8B^K|{@ zK!y#G4EG!#Eb~+?@u~eu8l~!ar>xl2`B^LdOq~z%j3aKFG7q1Sex~-%)6&n>dH5PO zdJn#e)_IkHeyO-kO5t?qH`^kaNGqI<`-S)+;B(Q>bXz6j@5<{)5YF*jJ}dqR`W~rS z{Ca&F{Iv96tV_}niBH`h{y2?3T}J@H{Yi$DV zDbh3rL;BC}S7l0PRQkcXtMEz09B&~GPUGjNz}+Rr@i)@{0zp?yBCh{2iQ}~6H}TdL zGFwo{oyPsBTBnSkAbtCSTpZ8T7UG=pLpMSquKxw4Pgkcxx&)lYox&DG5&0J4UEuD5 zIH7{YM^c}qJg>w-iTun^{Uh%L$i53W)t@e`L|mUvw2S;}Y9El9c+FS(bZaGI{TkrZ zpCgv~F9uHKQoMyo-X)03dQSb`Es^?CwfGf^8wn%X-|r0}-1k^Zr{3Py)r|;eK9H#! zLwblpnG_ui$Mmg(vA*D-9yVg}gdR-p6rtGA_Q8k|340$}wYs6SlHMO3j_Sd9Jh)4b z3>)!XqCXxSis<3w(9kZJ6i7NWjUrWldyBuj)4#di8`{1dAEM#nvrPnq}UOqxrhk68nhuu;Y3Uy zz<^VQMy6w&(<31v*RH)G?L3U6+VCKAE^2d6YdL!=!?q`-o&mU zBiILS#7#cHspv3%O4u&E!!aY`^*6UIH-cN0v~@V??Mp`STT(PEyd(_-69d8<-Zcz= zCO6_{&W=btftg<<=*Wvl27_dvQria&;gx;kMbf)91`#oTylI_6DJGlmjSQ%jIS_^u zmP}J~iJBIiemVp-6cZeZhERu?LGFQ2UwSbJ!i&vf2pd50CiKN6I{#ry&3(`LUc`~)YTpX{ChoRe{t>%R zY93L*QYq!{_k535u-JeE-R0SS%2UoOEa-er zeaiNHFFc^^Io`nKvpu(epR#XO4mo~tTp7Hoa1zPJYJUhA^()6)dT00`3EVd&!3BbqU=YM{YarQ(tK`W{(XzRDEFBbG$}z`UsIYY{}364xsJO+Qcum>!`0;(&r|cEWd9m96(qhm52f+Uy(4Dh16IT0E7JI&b zA5{e#)HwxY?aw!n=fb0wOYWY||1V(eFRT3}*j5$T^L@U8oPwQGtgDRjydda`o zj(Nsn&-cd;WnY^&l_>@1&|656FK$1dvqzNT1wE%K6P{vGnD=hP$t^hBH&}4howCi8 zRgH(sE>vBwK3uceKxJA)>4(=&q5W}H|D~# +using namespace std; +char a[110][110]; +int X[]={1,0,-1,0}; +int Y[]={0,1,0,-1}; +int n,m,tx,ty,k; +// queue >q; +bool vis[110][110]; + +bool issafe(int x,int y){ + if(x>0 && x<=n && y>0 && y<=m) + { + return true; + } + return false; +} + +bool dfs(int x,int y,int steps) +{ + + if(vis[x][y]) + { + if(x==tx && y==ty && steps>=k) + { + return 1; + } + return 0; + } + + vis[x][y]=1; + + int cx,cy; + for(int i=0;i<4;i++) + { + cx=x+X[i]; + cy=y+Y[i]; + + if(issafe(cx,cy) && a[cx][cy]=='.') + { + if(dfs(cx,cy,steps + 1)) + return 1; + } + } + vis[x][y]=0; + return 0; +} + +int main() +{ + // int n,m; + cin>>n>>m; + cin>>k; + cin>>tx>>ty; + + for(int i=1;i<=n;i++) + { + for(int j=1;j<=m;j++) + { + cin>>a[i][j]; + } + } + // memset(vis,false,sizeof(vis)); + + // q.push(make_pair(x,y)); + // vis[x][y]=true; + // q.push(make_pair(-1,-1)); + + /*while(k--) + { + int cx,cy; + pair node=q.front(); + q.pop(); + cx=node.first; + cy=node.second; + // vis[cx][cy]=true;*/ + + // } + + /*int x1,y1; + + x1=q.front().first; + y1=q.front().second; + + if(x1==x && y1==y) + { + printf("YES\n"); + } + else + { + printf("NO\n"); + }*/ + + if(dfs(tx,ty,0)) + { + printf("YES\n"); + } + else + { + printf("NO\n"); + } + +} \ No newline at end of file diff --git a/spoj/ALIEN b/spoj/ALIEN new file mode 100755 index 0000000000000000000000000000000000000000..83f5d508a1edb864aaec4aeac24eb04138ff5ebb GIT binary patch literal 9144 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 K7E`6U{eJ`HvDTFU literal 0 HcmV?d00001 diff --git a/spoj/ALIEN.cpp b/spoj/ALIEN.cpp new file mode 100644 index 0000000..3917547 --- /dev/null +++ b/spoj/ALIEN.cpp @@ -0,0 +1,52 @@ +#include +using namespace std; +#define ll long long +#define SIZE 100005 + +ll a,b; +ll arr[SIZE]; + +int main() +{ + int t; + scanf("%d",&t); + while(t--) + { + scanf("%lld %lld", &a, &b); + // memset(arr,0,sizeof(arr)); + for(int i=0;ib) + { + sum-=arr[i]; + length--; + i++; + } + if(maxlengthsum) + { + minsum=sum; + } + } + } + + printf("%d %d\n", minsum,maxlength); + } + return 0; +} \ No newline at end of file diff --git a/spoj/ALLIZZWELL b/spoj/ALLIZZWELL new file mode 100755 index 0000000000000000000000000000000000000000..0673ea73f28886973b95059350f0e2e370ffc6df GIT binary patch literal 14840 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 literal 0 HcmV?d00001 diff --git a/spoj/ALLIZZWELL.cpp b/spoj/ALLIZZWELL.cpp new file mode 100644 index 0000000..9707c6e --- /dev/null +++ b/spoj/ALLIZZWELL.cpp @@ -0,0 +1,101 @@ +#include +using namespace std; + +// stack >st; +int X[]={0, 0, 1, -1, 1, 1, -1, -1}; +int Y[]={1, -1, 0, 0, 1, -1, 1, -1}; +bool vis[101][101]; +char a[101][101]; +char sent[11]={'A','L','L','I','Z','Z','W','E','L','L'}; +int r,c; + +bool issafe(int x,int y) +{ + if(x>=0 && y>=0 && x>t; + + while(t--) + { + int r1,c1; + cin>>r1>>c1; + r=r1; + c=c1; + + memset(vis,false,sizeof(vis)); + + for(int i=0;i>a[i][j]; + } + } + + + bool flag=false; + + + for(int i=0;i+VeBKkI=0hzb?nG~ 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 DOX=U? literal 0 HcmV?d00001 diff --git a/spoj/APS.cpp b/spoj/APS.cpp new file mode 100644 index 0000000..345bc8b --- /dev/null +++ b/spoj/APS.cpp @@ -0,0 +1,40 @@ +#include +using namespace std; +long long p[10000010]; +long long res[10000010]; +void spf() +{ + + for(int i=2;i<=10000000;i++) + { + if(!p[i]) + { + for(int j=2*i;j<=10000000;j+=i) + { + if(!p[j]) + { + p[j]=i; + } + } + res[i]=res[i-1]+i; + } + else + { + res[i]=res[i-1]+p[i]; + } + } +} + +int main() +{ + spf(); + int t; + scanf("%d",&t); + while(t--) + { + long long int n; + scanf("%lld",&n); + printf("%lld\n", res[n]); + } + +} \ No newline at end of file diff --git a/spoj/ASSIST b/spoj/ASSIST new file mode 100755 index 0000000000000000000000000000000000000000..c2a98847d3a0b1780c08ea380ea2924a018be95d GIT binary patch literal 22072 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 literal 0 HcmV?d00001 diff --git a/spoj/ASSIST.cpp b/spoj/ASSIST.cpp new file mode 100644 index 0000000..0f68c37 --- /dev/null +++ b/spoj/ASSIST.cpp @@ -0,0 +1,48 @@ +#include +using namespace std; +int ans[3005]; +list v; + + +void pre() +{ + for(int i=2;i<=34000;i++) + { + v.push_back(i); + } + + int count=0; + list::iterator it,it2; + while(count<=3000) + { + int k=v.front(); + + ans[count]=k; + count++; + //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 Jvb{L_|37T7aB~0v literal 0 HcmV?d00001 diff --git a/spoj/ASSISTtest.cpp b/spoj/ASSISTtest.cpp new file mode 100644 index 0000000..923a16b --- /dev/null +++ b/spoj/ASSISTtest.cpp @@ -0,0 +1,34 @@ +#include +#include + +using namespace std; + +int main(){ + list L; + for(int i = 2;i<=33850;++i) L.push_back(i); + + int sz = 0, ans[3000]; + list :: iterator it,it2; + + while(!L.empty() && sz<3000){ + ans[sz] = L.front(); + ++sz; + + int k = L.front(),i = 0; + + for(it = L.begin();it!=L.end();it = it2,++i){ + it2 = it; ++it2; + if(i%k==0) L.erase(it); + } + } + + int n; + + while(true){ + scanf("%d",&n); + if(n==0) break; + printf("%d\n",ans[n-1]); + } + + return 0; +} \ No newline at end of file diff --git a/spoj/ATM b/spoj/ATM new file mode 100755 index 0000000000000000000000000000000000000000..b18ad077164fbdaa484c649183e19d79c3c9a023 GIT binary patch literal 9064 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 literal 0 HcmV?d00001 diff --git a/spoj/ATM.cpp b/spoj/ATM.cpp new file mode 100644 index 0000000..285c7fc --- /dev/null +++ b/spoj/ATM.cpp @@ -0,0 +1,19 @@ +#include +using namespace std; + +int main() +{ + int x; + double y; + scanf("%d %lf", &x, &y); + + if(x%5==0 && (x+0.5)<=y){ + + printf("%.2lf\n", y-(x+0.5)); + } + else + { + printf("%.2lf\n", y); + } + return 0; +} \ No newline at end of file diff --git a/spoj/Aman_and_Painting b/spoj/Aman_and_Painting new file mode 100755 index 0000000000000000000000000000000000000000..1bf9ed2af66fb88aa0420b6b136e62b166f77f91 GIT binary patch literal 38088 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 G`~L$*(onMi literal 0 HcmV?d00001 diff --git a/spoj/Aman_and_Painting.cpp b/spoj/Aman_and_Painting.cpp new file mode 100644 index 0000000..421d2fb --- /dev/null +++ b/spoj/Aman_and_Painting.cpp @@ -0,0 +1,113 @@ +#include +using namespace std; +#define SIZE 100005 +#define ll long long +#define INF 1000000000 + +vector > adj[SIZE]; +int n,m,src,dest,tim; +ll dist[SIZE]; + +void addedge(int x,int y, int d) +{ + adj[x].push_back(make_pair(y,d)); + adj[y].push_back(make_pair(x,d)); +} + +ll djisktras() +{ + for(int i=0;i<=n;i++) + { + dist[i]=INF; + } + dist[src]=0; + priority_queue > q; + q.push(make_pair(src,0)); + + while(!q.empty()) + { + pair p=q.top(); + q.pop(); + + int x=p.first; + + for(int i=0;idist[x]+w) + { + dist[e]=dist[x]+w; + q.push(make_pair(e,dist[e])); + } + } + } + if(dist[dest]==INF) + { + return -1; //if one cannot reach the destination from the source + } + else + { + return dist[dest]; + } +} + +int main() +{ + ofstream of; + of.open("AMANPNT output file #2"); + + int t; + scanf("%d",&t); + + while(t--) + { + scanf("%d%d%d%d%d",&n,&m,&src,&dest,&tim); + + + + for(int i=0;i<=n;i++) + { + adj[i].clear(); + } + + for(int i=1;i<=m;i++) + { + int u,v; + scanf("%d %d", &u,&v); + addedge(u,v,1); + } + + if(src==dest) + { + if(tim>=2) //if source and destination is at the same location it will only take 2 time units to complete the painting + { + // printf("YES\n"); + of<<"YES\n"; + } + continue; + } + + ll shortest_time = djisktras(); + + + + if(shortest_time == -1) + { + // printf("NOT POSSIBLE\n"); + of<<"NOT POSSIBLE\n"; + } + else if(2*shortest_time+2<=tim) + { + // printf("YES\n"); + of<<"YES\n"; + + } + else + { + // printf("NO\n"); + of<<"NO\n"; + } + } +} \ No newline at end of file diff --git a/spoj/BRCKTS b/spoj/BRCKTS new file mode 100755 index 0000000000000000000000000000000000000000..367e2a64505b83db31e6eea131b2c2c7a6b021fb GIT binary patch literal 13984 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 literal 0 HcmV?d00001 diff --git a/spoj/BRCKTS.cpp b/spoj/BRCKTS.cpp new file mode 100644 index 0000000..a46d130 --- /dev/null +++ b/spoj/BRCKTS.cpp @@ -0,0 +1,141 @@ +#include +using namespace std; +#define SIZE 30005 +struct trees +{ + int k,s; +}; + +trees tree[SIZE<<3]; + +string s; + +trees merge(trees a,trees b) +{ + trees res; + int n=min(a.k,b.s); + res.k=a.k+b.k-n; + res.s=a.s+b.s-n; + + return res; +} + +void build(int node, int start, int end) +{ + if(start==end) + { + if(s[start-1]=='(') + { + tree[node].k=1; + tree[node].s=0; + } + else + { + tree[node].s=1; + tree[node].k=0; + } + return; + } + int mid=(start+end)>>1; + int p1=node<<1; + int p2=node<<1|1; + + build(p1,start,mid); + build(p2,mid+1,end); + + tree[node]=merge(tree[p1],tree[p2]); +} + +void update(int node,int start, int end, int x) +{ + if(start==end) + { + if(s[x-1]=='(') + { + s[x-1]=')'; + tree[node].k=0; + tree[node].s=1; + } + else if(s[x-1]==')') + { + s[x-1]='('; + tree[node].k=1; + tree[node].s=0; + } + } + else + { + int mid=(start+end)>>1; + int p1=node<<1; + int p2=node<<1|1; + + if(start<=x && x<=mid) + { + update(p1,start,mid,x); + } + else + { + update(p2,mid+1,end,x); + } + tree[node]=merge(tree[p1],tree[p2]); + } +} + +trees query(int node,int start,int end,int l,int r) +{ + if(start==l && end==r) + { + return tree[node]; + } + int mid=(start+end)>>1; + + int p1=node<<1; + int p2=node<<1|1; + + if(r<=mid) + { + return query(p1,start,mid,l,r); + } + else if(l>mid) + { + return query(p2,mid+1,end,l,r); + } + else return (merge(query(p1,start,mid,l,mid),query(p2,mid+1,end,mid+1,r))); +} + +int main() +{ + int u=10; + while(u--) + { + printf("Test %d:\n",10-u); + int n; + scanf("%d",&n); + + cin>>s; + + build(1,1,n); + + int m; + scanf("%d",&m); + while(m--) + { + int k; + scanf("%d",&k); + + if(k) + { + update(1,1,n,k); + } + else + { + trees p=query(1,1,n,1,n); + if(p.k==0 && p.s==0) + printf("YES\n"); + else + printf("NO\n"); + } + } + } + return 0; +} \ No newline at end of file diff --git a/spoj/BRCKTStest b/spoj/BRCKTStest new file mode 100755 index 0000000000000000000000000000000000000000..47d78c64951ce2997e35e5e60c978239c214322c GIT binary patch literal 13976 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 CgCN!b literal 0 HcmV?d00001 diff --git a/spoj/BRCKTStest.cpp b/spoj/BRCKTStest.cpp new file mode 100644 index 0000000..fb744a8 --- /dev/null +++ b/spoj/BRCKTStest.cpp @@ -0,0 +1,126 @@ +#include +#include +using namespace std; + +struct SegmentTreeNode { + int unmatchedOpenParans, unmatchedClosedParans; + + void assignLeaf(char paranthesis) { + if (paranthesis == '(') + unmatchedOpenParans = 1, unmatchedClosedParans = 0; + else + unmatchedOpenParans = 0, unmatchedClosedParans = 1; + } + + void merge(SegmentTreeNode& left, SegmentTreeNode& right) { + int newMatches = min(left.unmatchedOpenParans, right.unmatchedClosedParans); + unmatchedOpenParans = right.unmatchedOpenParans + left.unmatchedOpenParans - newMatches; + unmatchedClosedParans = left.unmatchedClosedParans + right.unmatchedClosedParans - newMatches; + } + + bool getValue() { + return unmatchedOpenParans == 0 && unmatchedClosedParans == 0; + } +}; + +template +class SegmentTree { + SegmentTreeNode* nodes; + int N; + +public: + SegmentTree(T arr[], int N) { + this->N = N; + nodes = new SegmentTreeNode[getSegmentTreeSize(N)]; + buildTree(arr, 1, 0, N-1); + } + + ~SegmentTree() { + delete[] nodes; + } + + V getValue(int lo, int hi) { + SegmentTreeNode result = getValue(1, 0, N-1, lo, hi); + return result.getValue(); + } + + void update(int index, T value) { + update(1, 0, N-1, index, value); + } + +private: + void buildTree(T arr[], int stIndex, int lo, int hi) { + if (lo == hi) { + nodes[stIndex].assignLeaf(arr[lo]); + return; + } + + int left = 2 * stIndex, right = left + 1, mid = (lo + hi) / 2; + buildTree(arr, left, lo, mid); + buildTree(arr, right, mid + 1, hi); + nodes[stIndex].merge(nodes[left], nodes[right]); + } + + SegmentTreeNode getValue(int stIndex, int left, int right, int lo, int hi) { + if (left == lo && right == hi) + return nodes[stIndex]; + + int mid = (left + right) / 2; + if (lo > mid) + return getValue(2*stIndex+1, mid+1, right, lo, hi); + if (hi <= mid) + return getValue(2*stIndex, left, mid, lo, hi); + + SegmentTreeNode leftResult = getValue(2*stIndex, left, mid, lo, mid); + SegmentTreeNode rightResult = getValue(2*stIndex+1, mid+1, right, mid+1, hi); + SegmentTreeNode result; + result.merge(leftResult, rightResult); + return result; + } + + int getSegmentTreeSize(int N) { + int size = 1; + for (; size < N; size <<= 1); + return size << 1; + } + + void update(int stIndex, int lo, int hi, int index, T value) { + if (lo == hi) { + nodes[stIndex].assignLeaf(value); + return; + } + + int left = 2 * stIndex, right = left + 1, mid = (lo + hi) / 2; + if (index <= mid) + update(left, lo, mid, index, value); + else + update(right, mid+1, hi, index, value); + + nodes[stIndex].merge(nodes[left], nodes[right]); + } +}; + +int main() { + int N, M, k; + char word[30005]; + + for (int t = 1; t <= 10; ++t) { + scanf("%d", &N); + scanf("%s", word); + SegmentTree st(word, N); + + printf("Test %d:\n", t); + scanf("%d", &M); + while(M--) { + scanf("%d", &k); + if (k != 0) { + --k; + word[k] = (word[k] == '(') ? ')' : '('; + st.update(k, word[k]); + } else + printf("%s\n", st.getValue(0, N-1) ? "YES" : "NO"); + } + } + + return 0; +} \ No newline at end of file diff --git a/spoj/BUGLIFE b/spoj/BUGLIFE new file mode 100755 index 0000000000000000000000000000000000000000..5aa6bdef057b09abf5ddbe917fd5b0bf2a2527cc GIT binary patch literal 42896 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 F{{}%j8T0@E literal 0 HcmV?d00001 diff --git a/spoj/BUGLIFE.cpp b/spoj/BUGLIFE.cpp new file mode 100644 index 0000000..3756f2c --- /dev/null +++ b/spoj/BUGLIFE.cpp @@ -0,0 +1,104 @@ +#include +using namespace std; +#define SIZE 1000002 +vector adj[2002]; +queue q; +long long coloured[2002]; + + +void addedge(long long x,long long y) +{ + adj[x].push_back(y); + adj[y].push_back(x); +} + +int bfs(long long src) +{ + coloured[src]=1; + + while(!q.empty()) + { + q.pop(); + } + + q.push(src); + + while(!q.empty()) + { + long long u=q.front(); + q.pop(); + + for(int i=0;i>t; + while(t--) + { + long long n,c; + int flag=0; + scanf("%lld %lld",&n,&c); + int res; + memset(coloured,-1,sizeof(coloured)); + + for(long long i=1;i<=n;i++) + { + adj[i].clear(); + } + + for(long long i=0;i-(F9YHSX#j$KNi@UUr(}&fS_o^ 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 literal 0 HcmV?d00001 diff --git a/spoj/BUGLIFEtest.cpp b/spoj/BUGLIFEtest.cpp new file mode 100644 index 0000000..2e429ed --- /dev/null +++ b/spoj/BUGLIFEtest.cpp @@ -0,0 +1,72 @@ +#include +using namespace std; +int G[2019][2019]={0,0}; +int chec(int a); +int n; +int colorArr[2019]; +int main() +{ + int t,m,x,y,i; + scanf("%d",&t); + for(int test = 1 ; test <= t ; test++) + { + memset(G,0,sizeof(G)); + int flag=0; + scanf("%d%d",&n,&m); + for(i=0;i q; + q.push(start); + while (!q.empty()) + { + + int i = q.front(); + q.pop(); + + + for (int j = 1; j <= n; j++) + { + if (G[i][j] && colorArr[j] == -1) + { + + colorArr[j] = 1 - colorArr[i]; + q.push(j); + } + else if (G[i][j] && colorArr[j] == colorArr[i]) + return 0; + } + } + return 1; +} \ No newline at end of file diff --git a/spoj/CCOST b/spoj/CCOST new file mode 100755 index 0000000000000000000000000000000000000000..1b71018e698a2d3c1c26e0650a678a157852a3a6 GIT binary patch literal 33496 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 literal 0 HcmV?d00001 diff --git a/spoj/CCOST.cpp b/spoj/CCOST.cpp new file mode 100644 index 0000000..c2cae87 --- /dev/null +++ b/spoj/CCOST.cpp @@ -0,0 +1,131 @@ +#include +using namespace std; +#define ll long long +#define MAXR 500005 +#define MAXV 10000005 + +int BIT[MAXV]; +int ans[4*MAXR]; +int r,mr,n; + +typedef struct tree +{ + int x,y; + int val; +}tree; + +typedef struct qu +{ + int x,y,pos; +}quer; + +bool compt(const tree &a,const tree &b) +{ + return a.y0;x-=x&-x) + sum+=BIT[x]; + return sum; +} + +int main() +{ + int t; + scanf("%d",&t); + while(t--) + { + scanf("%d",&n); + tree t[n+5]; + memset(BIT,0,sizeof(BIT)); + + for(int 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%0AgtNw_(k{0uaeONlek7vM`jBIA&;-*-AUpm| zoQZeo=D@aFo6e=T67nZph83O|(unwymThQ>%Bzqq7)TExFz)bL|V z{@Rux{sE+5osv(r4gT;3CBJTS1LScSY37uTf#xudmuwXSwB|s_PYuLXQz)Y3v%O(H zF7wwnqKbdb2H*5!7nmBE1Lg-dh@ZDM)Io@>@uvKDF5W_3-(3qfbmOlN)`@Df^f0C4L)tsC@}BqsZrdR}X^{<0qZ7-jvtP<^? zyGgd>Q1&aaPbamP&vBs2h`LSHlp5ohDlH1es6V~?f->sAX zo*g}(YAwm__b0WN&yROgV56KJ!J+(4w&xE)pl6jRhN#Hrb>+Wrmu#=(_OGE09^EqA z%jeNE=aaP5`ATm83-HkRW&iTI_1q!0e-~}Z)nt45_ZjlvAM7FFDAK=W|8iVAK(qEQ z|2?sR+gUSL|C4e)NNR6BFR$|UYdA2!WjhH6K(Y2OpQ~S^@+MMGDL}T9^^b8uI5~d# z{C$(kIed#2NfJZ&INJP9L+8|gfr;T4vVBn!o_MK9h{s^ez8OJ$c_}fXWJyL|HQR|Q ut0%cQBR!*Xj%UcZP_D&i20n89l*_14eA))cuy}5$ieEgJl)#eIQT`nieigO= literal 0 HcmV?d00001 diff --git a/spoj/CCOSTtest.cpp b/spoj/CCOSTtest.cpp new file mode 100644 index 0000000..afd3aa2 --- /dev/null +++ b/spoj/CCOSTtest.cpp @@ -0,0 +1,142 @@ +#include + +using namespace std; + +#define MAXN 100005 +#define MAXR 500005 +#define MAXV 10000005 + +int tree[MAXV], ans[4*MAXR], n, r, mr; + +struct points +{ + int x, y, val; +}; + +struct query +{ + int x, y, pos; +}; + +points p[MAXN]; +query q[MAXR]; + +bool cmpP(const points &a, const points &b) +{ + return a.y0) + { + sum+=tree[idx]; + idx-=idx&-idx; + } + return sum; +} + +int main() +{ + int t, x1, y1, x2, y2, curr, pre, qre; + scanf("%d", &t); + while(t--) + { + memset(tree, 0, sizeof(tree)); + scanf("%d", &n); + for(int i=0;i%d %d %d\n", p[i].x, p[i].y, p[i].val); + }*/ + scanf("%d", &r); + for(int i=0;i%d %d %d\n", q[i].x, q[i].y, q[i].pos); + }*/ + pre=qre=0; + while(pre> %d %d", p[pre].y, q[qre].y); + while(pre0>\n"); + update(p[pre].x, p[pre].val); + pre++; + } + while(qre1>%d %d %d\n", q[qre].y, q[qre+1].y, read(q[qre].x)); + ans[q[qre].pos]=read(q[qre].x); + qre++; + } + //printf(">2> %d\n", read(q[qre].x)); + ans[q[qre].pos]=read(q[qre].x); + qre++; + } + /*for(int i=0;i%d ", ans[i]); + } + printf("\nTree:\n"); + for(int i=0;i%d ", tree[i]); + } + printf("\n");*/ + for(int i=0;iVk`$sK$;&4iPF83`L#-h}YR^8ra;o5g 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 literal 0 HcmV?d00001 diff --git a/spoj/CHEFPRMQ.cpp b/spoj/CHEFPRMQ.cpp new file mode 100644 index 0000000..f923b91 --- /dev/null +++ b/spoj/CHEFPRMQ.cpp @@ -0,0 +1,130 @@ +#include +using namespace std; +#define ll long long +#define SIZE 100005 + +ll sieve[1000005]; +int n,q; +ll a[SIZE]; + +void sievefunc() +{ + sieve[1]=1; + for(int i=2;i<=1000000;i++) + { + if(!sieve[i]) + { + for(int j=i;j<=1000000;j+=i) + { + if(!sieve[j]) + { + sieve[j]=i; + } + } + } + } +} + +struct trees +{ + vector v; +}; + +trees tree[SIZE<<4]; + + +void build(int node,int start,int end) +{ + // printf("here\n"); + if(start>end) return; + if(start==end) + { + ll x=a[start]; + // printf("%lld\n", x); + + int k=sieve[x]; + // printf("%d\n", k); + + tree[node].v.push_back(k); + + while(x!=k) + { + // printf("%d\n", tree[node].v.front()); + x/=k; + k=sieve[x]; + tree[node].v.push_back(k); + } + + /*for(int i=0;i>1; + build(2*node,start,mid); + build(2*node+1,mid+1,end); + tree[node].v.resize(tree[2*node].v.size()+tree[2*node+1].v.size()); + merge(tree[2*node].v.begin(),tree[2*node].v.end(),tree[2*node+1].v.begin(),tree[2*node+1].v.end(),tree[node].v.begin()); +} + +int query(int node, int start, int end, int l, int r, int x, int y) +{ + if(start>end || start>r || end>1; + return query(2*node,start,mid,l,r,x,y)+query(2*node+1,mid+1,end,l,r,x,y); +} + +int main() +{ + sievefunc(); + /*for(int i=1;i<=1000000;i++) + { + printf("%d\n",sieve[i] ); + }*/ + scanf("%d",&n); + for(int i=1;i<=n;i++) + { + scanf("%lld",&a[i]); + } + build(1,1,n); + + /*for(int i=1;i<=2*n-1;i++) + { + for(int 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 literal 0 HcmV?d00001 diff --git a/spoj/CHICAGO.cpp b/spoj/CHICAGO.cpp new file mode 100644 index 0000000..7c02dd4 --- /dev/null +++ b/spoj/CHICAGO.cpp @@ -0,0 +1,99 @@ +#include +using namespace std; +#define SIZE 110 +vector > adj[SIZE]; +bool vis[SIZE]; +double dist[SIZE]; +long long n,m; +// vectorpath; + +void addedge(long long x,long long y,double p) +{ + adj[x].push_back(make_pair(y,p)); + adj[y].push_back(make_pair(x,p)); +} + +double max_dijkstra() +{ + memset(dist,0,sizeof(dist)); + // memset(vis,false,sizeof(vis)); + //path.empty(); + dist[1]=1; + //priority_queue >q; + queueq; + q.push(1); + + while(!q.empty()) + { + int x=q.front(); + q.pop(); + // int wei=p.second; + + // if(vis[x]) continue; + + // vis[x]=true; + // path.push_back(x); + // if(x==n) break; + + for(long long i=0;iurXwgGR0z~t`JP;KW4S0z$ zO09aSr7cowsYRt~Ewxl4P?CDNnp$enqUBm^4}u!4)o9WDJ~M09-fQo(_eu2I-+w)= z%-%DzX3d&4Yu2pCIk`PtI4wCT$>k^CJLj6LFQvX`knmmUmWaV3Zt&o*voo4j` zR~r7)d?9(#uuF<*m=0e0q~O0){Fk3hZv;aGY&eA9EK5UOJ3*??`Gn+A!L6IrtA-Y| zqz{!NU1N{a8^QT5*e-fxl4AVH;(rNE<hwT=EO7P-aAA-vIh zh=4Vf|8*eo(x>Qe^=0(jS;?<}A%4&>ub;wesLNf6a-?T(KN-R}OX>@*x`r%36EFb+@L z1N46*0RQ~}{D1)YIRW?zk+ZgM2v5%E4m`5`B~IBC_+?#vS?S1;d zQ>H}6j?S?zD=e5iB|2twp8Ygt^f+tE+_{q`7esSMk5%ZobHSWPJ(Q>0M; zr7?!EeVB@nU=4-u=0_RYsq#J(3e`XqttQlaPIeQ-s^aWsQGB)EoCD*BS_4F*3w zl05qS;mI2?-K1Jugui~o{Rr{N)-Q#>>&f}dN3qwQI`EviRpF1pv#{dHva$@kgjB|7 z8+dbm%Q5g~e9t%VREPeA47{F;h!!#MXt4b$GVnUK5^=79he7Snd;e~fp@ZG{41bs2sY?%a@cUczPF;DZmET{d zcXEY8TlxJJdZ#Jx&<1{gk>06`53S|*o%Bv!duS!UKS%G!(EAd8e~R9zD-X@*_s8g+ zy6{jDzi*^>$_fsJ`2Aser!G5`!|(Ugdw+V*;`h7hox1K&2EX4)@6=_7EPlU*-l?k& zb$$uN@LGDOE;@9O-*^5v%UZY=@BGPqub}Do*F~D%iZs66SyWum*18fIOQh|E3 z2868GF_81|!hvT@wXAKwM90jDoVOJq(%3a1()72br*0!r)E$Ga-9d!zgJ538@~_=R zy|8e!et(|mb0T-V&jMcfG6e!6O`VY!VwXme_C$XFW&Jm7X~$}51JAIo-KFYZdGW8H zztu2k4hqJqq1d&1(jEmW=^tFv4(kb0>{6>C?eKR{&KC9|73l7`_RuXTL(h|nXGiWh zau8ZJ{bm$!O~1&-zh#l;)Zy7cMw-I0+}21-cx|MqEjAJz9BG-eHqx@1dMVQMDq-JX ztl}7s=eF=#5W9CAL>ptHk0Bwu)XQtc+4O=Ew=>f8W~Axm*j#Wluco>q>mp5i6z8{r z{AgfCT1pAQL8$dX=5SSf56RY;w%CvG+Sr-2s&(M1$7ndXDa}^X>WNf|gMJhR+E(WS ziIzeKdWw|pZ&rM)Oe?kFVX6lW-A-`Au7UTru4=8nE13U!=11e&Vo%}`HHX(W!#+;) zo`NCJybLt$LGov_N;ccK6+Hs#7DqcTVhrGGT=>eW%M6a;MQ(1Fa=G!ma2l5^(pn#U96_trV5|Xwtwz zslyuC+DV7*!f0$>O+IIs=R2w*v?C*}Zu1bFwc-LuS59Yu^0RNbF?%3%xZMQE$p1(ZEl9wz_5ee?R#iFRPP{te}QKd zgKb*o0I^4L{FTfr98ZEnjhROBHR4@3@Pk%+Bz*_iw(xFf4C1y4;oSpU{($F5%Zzr& zY=xNZ#QQy4(<0V%dt)rADZITo+{zEFuyYuFka672*OJk%d!aeJ9s0cm=}kKqMh4#2 z+C&P5_oIaBNp4Ftl?=F3DZ3}q^rzUFm;`KLqikWV5cZ&tuUucRaj-juNoS)cVB>ail9Hgp|MW9wYIYb|*)wJbv7n!^y;7Mlw$ zRP9Uq2rd{zTZ>)^qMeTJ*EAYAi&5b^@91d`ucP|UMt-3Br8Uw#2PmFy-hu@9(*^_e z2&2fE8-S+5uTlBQR9<9#OgiDk2olok!te($$WVXjQ}lWT{z0!VHhP_Hqf8AO&FK_{ zPDV9ol2|YcT&TpEKf5r0HqVJcWnJJDo7?B&T47fQq0AK*PRGFA;Gw5ruIGo>jaO#Ialwoz@l`{7-h;Ox;_P=1_j8 zY61iLU;6$&F4Gpfnc*&tejNdl5;XRK*QN3siH9+5u|aq)X!Spv&ZV>hB!N>@>IW>(5r?L)v;2Jalfcic3Bjsj-aCow2+fL<4ETv5K zBN^R{-k5{RO^0e3oTQ3yOzKBbO@>KaByBeRV=!vdUh8Tb@*501Q8v%Nai?(`d>Yrz znadtb=$^(6qQ>QGv2VBx<;DFgKc|b62GojN}m#VzAcR8QJ!;$J8e>@JZl>iP{JIb2ENMN{TyFV7AwT26W8K zlnASg_Dp3p8uD?T2hRP5cIZJU{K zyb`Dlno%m1JkOa65UoJCYWk^D(*RFRp0@ECeUkK01TLal(;Ue*%s&cy2Z}|L%{CWn zDm2OQw)qT4lT{xCv{@21$3J<@O`)_59_jT$hdYPJGD2ws$>f%vjhn&X0W~1(p`eeqU!Zw8OBO zlx_OWGPcbxmH?RLDTXw!CM!YBW)-hnaZZ>Xcxg zq2dY9WYD5?J)gMrgoGmS1<^h+YWGAu-+3t2ciQQvG~rn$Q8a(-UD&#Dx1DL~dBvWE zvKT|2)P%(kwaf8=*OjX51MyJ{d`b$nA{$~%pC(ZlHryl6agQK*;c1dl9|Gl?7M|r$ zzys~mL##3_WyJe(Abh{qrzq2<#2bUF1zNYz>WF23z}4Z^vuwK*aveVnmPreaIH3;* z2z@tZ_$t{FcH{&Y#+X5V0z=H8mIKfE0)0*HInIYw!X zK6Q_9*-+a}VM{v*wSV{d4S^?{@~kJj-A9>4H}pfPg|QFth!m&`HKL+kC{ zr?&Q}-|48u*3aaJodZ{GR9OHaDBUIDc;@H=Ia~=(bBwk#Vvu2+ya| zq4dI*`67vm%st2xCc5LZ6UpdU-MuB-yPpuEB@A`jV&l;mwR-GOqckbfbY=RX(`geG za-VyuGGskZ+gHSVDl^k605#(MQ}y0~L5KfHAP>6iOk$^bnG~bUgVA#ox*h0tkhcQ1 zVxccFtv%AxKUqqw6C>O}fuJqC71gsgROb|4HqkyYszZF{#^tDjV4{hIHLMYS9bD=E6!!$e)mwsg04Xg-!n_R(ee}j@0DFzKA_m6@F1x`pRDH|C)&0 zTphQ;?O`PeD6)9mTCk)vcI84MVl8$x+%aRhpo4vCFK`KgSX|w&}0b?p?7VRG&(J zO6bv*ETzTXBeurf^X)x$OaxiIi%jj@hlq-v$n-Eo`eYsG$7fWDu1FiX1{o2LA!utq z^T{rPKwQp(()XjZ9UqjIPE2WB(P`D6#1i$;SH@W6E|tNNNFw4b|4;hNbxS6z^+KQX z+@)OlgnH1Yu@&st8L308$zZHx~iv~hVbInpvXMO9vuvlb7= z>SNwv^g>&#?I4ddv`gE80*Kc34(0FLoMC`RH4I|!{e`6PDXNQ zluD*Twm1meP%FEz0@+`88b7gh!Nd_|A6dUK+?9U#H5p;#5%~}Ud+~m?E9qB<(SKLd z3kzuD4o06h&!BnZ?_&IJLh~#3K=AA_iGAV&e(b#xvuf8XXlksA+S|B0UuTMvQApbLb7CKLD?)!#0}{pCG6cvM*SHJ8do;E8*6G&bcE8;$YwDNWvo+HsC7}o zKV#v&-C6h_n_Gr&5kw=9tHpm@!c3cgls>S|x6_sf%?6mqyBi|i4WaIa{O*RF?uP8{ zhOF*}%h@Kj?X(xx*KUHuneD{AQH!?dnT&i@*@@ddSCngueFvKr`e46XH-YzywC*W( zn?u=fLS;yvBe<6PaUDuET$d`!plxP*|I$0UvTSvm;?|Kb;jUM}y!<*y+_AqXc>)R=dr@$9=WKCLxEtppw2qk30Zu(mUd1ZP-l9VB21p`jHKcJX zcn!3BB_yr^6X1ht!>omtFlOALd7zPZ6Rm-(hS7zI=I|PfUD$vcK#%E(cHA%Goxy>3 zp2KSswdLo;uoqNL3LV;Ff9)iX$L*b#IV%x@*6P^B>r$lAx-zv0*&GqcchR>Imt#PCh3!9#pGclndZj2U1X(hMd1VHqF*Z z%Mc_Bv>no}kwPjoV;Q5u`Y#A8_iL_r3l~RrvYWK9GeYa<+Od)q-eXv6q*2rwsQXv- z-a+%9vJl6;J1Fj{bu6^A*RfwH?sk-J2YG{*@*yv+U@*+Bt~RiJFu6`lMlY*{z3heW ziA^W9+rk@Qc-Td$vzZ0a5|^#UYBc9Cl}9~l>cw7s9V_A?ETTS%FBP*SC_E(vGA4Q+b?5p;!mLP7gL)>1Aog`>J zV`W^#Ua&TaMJ{FoBE0pV2-meMq6we9o*~j#vwA5#L2bVY@4d2 zwhYP8q~nCtVh8AxQ1H<4DI||-Zi`Lj9d3jQxcW$1_flY04dPO5v0S!{sVWyd76sK% z1~&&**7adNKZp1ROh4Gb;=p*TxWZIa>4x6y&jwqGfM(5gDUj+;iyZ(eF{V=|0#K4x6CPTr4&v0khn zRB;m%IY-Amv6HCsw(vHIn5@9ZJXhJ5N1J(LEl1T08&K}g5p$%fnyOSipTv^@%h(DT zKBm2tWs#6=PL%wsGJvgmJ=d>#OGU|bPLwPsqUzoZ8+hL4haa8T@| zq@A&(e1<%36Su`IWf+KqAqpZGKF-0gEp}fAiZ`yH}+-6zAvG)Ywsuv zO$AG$o0IRVDBcNSuA7tF(InMB&dQaJ%f$RsC`3}GK@H{p$rTKlX+PcjlO<^UT8dYD z-$1!83|lx08{`wZeUipu!`>Dq^}Bd!Lkrb_pj`qZ*mouVF_?N>eYrK|MOjQb|$N2+=Ihz&t)NW5C-UT6#9GzJE8b~ubjwm

_x<*`@Dz5g=4heW<4+lx072fWDT;O-5^ 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 z @H!@h?e2W}Ds;?e=*81-5TTQ;? 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 agmmj${H^_?`dt_P><__>se?%#AO643hD165 literal 0 HcmV?d00001 diff --git a/spoj/CHICAGOtest.cpp b/spoj/CHICAGOtest.cpp new file mode 100644 index 0000000..e7cf138 --- /dev/null +++ b/spoj/CHICAGOtest.cpp @@ -0,0 +1,85 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define INF 1 + +typedef long long int LLD; +typedef unsigned long long int LLU; + +using namespace std; + +vector< vector< pair > > graph; +vector dis; + +double dijkstra(int s, int d){ + queue q; + fill(dis.begin(), dis.end(), -INF); + dis[s] = 1; + q.push(s); + while(!q.empty()){ + int node = q.front(); + q.pop(); +// cout << "working on " << node << endl; + for(int i=0;i tmpPair; + while(true){ + scanf("%d", &n); + if(n == 0) + break; + scanf("%d", &m); + graph.clear(); + graph.resize(n); + dis.clear(); + dis.resize(n); + for(int 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%0A|u5ZKLptin@eza$lacyfyEafrB)GUpJcD^ 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 J_5bev{|_lDpGg1! literal 0 HcmV?d00001 diff --git a/spoj/CLEANRBT.cpp b/spoj/CLEANRBT.cpp new file mode 100644 index 0000000..5ce8125 --- /dev/null +++ b/spoj/CLEANRBT.cpp @@ -0,0 +1,161 @@ +#include +using namespace std; + + +#define MAXR 101 +#define MAXC 101 +#define MAXDIRTY 101 +#define MAXMASK 2048 +#define INF INT_MAX + + + +int dist[MAXR][MAXC][MAXDIRTY]; +int dp[MAXDIRTY][MAXMASK]; + +vector > dirty; +int len,limit,r,c; + +char arr[21][21]; + +int X[]={-1,0,0,1}; +int Y[]={0,1,-1,0}; + + +bool safe(int x, int y) +{ + if (x >= r or y>= c or x<0 or y<0) + return false; + if (arr[x][y] == 'x') + return false; + return true; +} + + +void bfs(int idx) +{ + bool vis[21][21]; + memset(vis,false,sizeof(vis)); + + int cx=dirty[idx].first; + int cy=dirty[idx].second; + + queue >pq; + pq.push({cx,cy}); + + for(int i=0;i>w>>h; + r=h; + c=w; + if(w==0 && h==0) + break; + else + { + memset(dp, -1, sizeof(dp)); + dirty.clear(); + int x,y; + for(int i=0;i>arr[i][j]; + if(arr[i][j]=='o') + { + x=i; + y=j; + } + if(arr[i][j]=='*') + dirty.push_back({i,j}); + } + } + + dirty.insert(dirty.begin(),{x,y}); + + len=dirty.size(); + + limit=(1<= INF) + cout << "-1" << endl; + else + cout << ans << endl; + } + + } + return 0; +} \ No newline at end of file diff --git a/spoj/CLEANRBT1 b/spoj/CLEANRBT1 new file mode 100755 index 0000000000000000000000000000000000000000..54ad941c9c320c505aacc4421e791c9290dc4123 GIT binary patch literal 54280 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 V)_1c0OYTzj9x72#|L+pV_& +using namespace std; + +#define INF 99999999 +#define MAXR 101 +#define MAXC 101 +#define MAXMASK 2048 +#define MAXHOUSE 101 + +// stores distance taking souce +// as every dirty tile +int dist[MAXR][MAXC][MAXHOUSE]; + +// memoization for dp states +int dp[MAXHOUSE][MAXMASK]; + +// stores coordinates for +// dirty tiles +vector < pair < int, int > > dirty; + +// Directions +int X[] = {-1, 0, 0, 1}; +int Y[] = {0, 1, -1, 0}; + +char arr[21][21]; + +// len : number of dirty tiles + 1 +// limit : 2 ^ len -1 +// r, c : number of rows and columns +int len, limit, r, c; + + +// Returns true if current position +// is safe to visit +// else returns false +// Time Complexity : O(1) +bool safe(int x, int y) +{ + if (x >= r or y>= c or x<0 or y<0) + return false; + if (arr[x][y] == 'x') + return false; + return true; +} + + +// runs BFS traversal at tile idx +// calulates distance to every cell +// in the grid +// Time Complexity : O(r*c) +void getDist(int idx){ + + // visited array to track visited cells + bool vis[21][21]; + memset(vis, false, sizeof(vis)); + + // getting current positon + int cx = dirty[idx].first; + int cy = dirty[idx].second; + + // initializing queue for bfs + queue < pair < int, int > > pq; + pq.push({cx, cy}); + + // initializing the dist to max + // because some cells cannot be visited + // by taking source cell as idx + for (int i = 0;i<= r;i++) + for (int j = 0;j<= c;j++) + dist[i][j][idx] = INF; + + // base conditions + vis[cx][cy] = true; + dist[cx][cy][idx] = 0; + + while (! pq.empty()) + { + auto x = pq.front(); + pq.pop(); + for (int i = 0;i<4;i++) + { + cx = x.first + X[i]; + cy = x.second + Y[i]; + if (safe(cx, cy)) + { + if (vis[cx][cy]) + continue; + vis[cx][cy] = true; + dist[cx][cy][idx] = dist[x.first][x.second][idx] + 1; + pq.push({cx, cy}); + } + } + } +} + +// Dynamic Programming state transition recursion +// with memoization. Time Complexity: O(n*n*2 ^ n) +int solve(int idx, int mask) +{ + // goal state + if (mask == limit) + return 0; + + // if already visited state + if (dp[idx][mask] != -1) + return dp[idx][mask]; + + int ret = INT_MAX; + + // state transiton relation + for (int i = 0;i>w>>h; + r=h; + c=w; + if(h==0&&w==0) + break; + else + { + memset(dp, -1, sizeof(dp)); + dirty.clear(); + int x,y; + + for(int i = 0;i>arr[i][j]; + if(arr[i][j]=='o') + { + x=i; + y=j; + } + if (arr[i][j] == '*') + dirty.push_back({i, j}); + } + //cout << endl; + } + + // - initializitiation + // - precalculations + // init(); + + // populating dirty tile positions + + // inserting ronot's location at the + // begining of the dirty tile + dirty.insert(dirty.begin(), {x, y}); + + len = dirty.size(); + + // calculating LIMIT_MASK + limit = (1<= INF) + cout << "-1" << endl; + else + cout << ans << endl; + } + } + return 0; +} \ No newline at end of file diff --git a/spoj/CODFURY b/spoj/CODFURY new file mode 100755 index 0000000000000000000000000000000000000000..d48199a693589b624f65176764fe4daed3e06a19 GIT binary patch literal 9096 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 literal 0 HcmV?d00001 diff --git a/spoj/CODFURY.cpp b/spoj/CODFURY.cpp new file mode 100644 index 0000000..7b4e42d --- /dev/null +++ b/spoj/CODFURY.cpp @@ -0,0 +1,50 @@ +#include +using namespace std; +#define SIZE 50005 + +int a[SIZE]; + +int main() +{ + int t; + scanf("%d", &t); + + while(t--) + { + int p,m; + scanf("%d %d", &p, &m); + + for(int i=0;im) + { + sum-=a[i]; + length--; + i++; + } + if(maxlengthsum) + { + minsum=sum; + } + } + } + + printf("%d %d\n",minsum, maxlength); + } +} \ No newline at end of file diff --git a/spoj/COINS b/spoj/COINS new file mode 100755 index 0000000000000000000000000000000000000000..c2fa19ac33b9039df0f59b1b80f98d5ea9662fa5 GIT binary patch literal 38728 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 Ip^owY0e%);!~g&Q literal 0 HcmV?d00001 diff --git a/spoj/COINS.cpp b/spoj/COINS.cpp new file mode 100644 index 0000000..5a21eff --- /dev/null +++ b/spoj/COINS.cpp @@ -0,0 +1,21 @@ +#include +using namespace std; +#define ll long long + +ll n; +mapv; + +ll maxdollars(ll n) +{ + if(n<12) return n; + if(v[n]) return v[n]; + return v[n]=max(v[n],maxdollars(n/2)+maxdollars(n/3)+maxdollars(n/4)); +} + +int main() +{ + while(scanf("%lld", &n)!=EOF) + { + printf("%lld\n",maxdollars(n)); + } +} \ No newline at end of file diff --git a/spoj/CPAIR b/spoj/CPAIR new file mode 100755 index 0000000000000000000000000000000000000000..8fa0aea486a4c7f9b974f17447b42976591a22e7 GIT binary patch literal 29384 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 literal 0 HcmV?d00001 diff --git a/spoj/CPAIR.cpp b/spoj/CPAIR.cpp new file mode 100644 index 0000000..9567514 --- /dev/null +++ b/spoj/CPAIR.cpp @@ -0,0 +1,171 @@ +//still TLE + +#include +using namespace std; +#define SIZE 100005 +int n,qu; + +struct num +{ + int val,index; +}a[SIZE]; + +bool cmp(num a,num b) +{ + return a.val>b.val; +} + +struct cpair +{ + int v,a,b,pos; +}q[SIZE]; + +bool cmp1(cpair a,cpair b) +{ + if(a.v==b.v) + { + a.b>b.b; + } + return a.v>b.v; +} + +struct trees +{ + int sum,size,flag; +}; + +trees tree[SIZE<<3]; + +trees merge(trees a, trees b) +{ + trees res; + res.sum=a.sum+b.sum; + res.size=a.size+b.size; + if(a.flag>0 &&b.flag>0) + res.flag=1; + else + res.flag=0; + // res.flag=a.flag & b.flag; + return res; +} + +void build(int node, int start, int end) +{ + if(start==end) + { + tree[node].sum=0; + tree[node].size=1; + tree[node].flag=0; + return; + } + int mid=start+end>>1; + build(2*node,start,mid); + build(2*node+1,mid+1,end); + tree[node]=merge(tree[2*node],tree[2*node+1]); +} + +void update(int node,int start,int end,int x) +{ + if(start==x && end==x) + { + tree[node].sum=1; + tree[node].flag=1; + return; + } + if(start>end || start>x || end>1; + update(2*node,start,mid,x); + update(2*node+1,mid+1,end,x); + tree[node]=merge(tree[2*node],tree[2*node+1]); +} + +int query(int node,int a,int b) +{ + int s=0; + if(tree[node].flag==1) + { + /*for(int i=a;i<=b;i++) + { + if(tree[node].sum-(i-1)>0) + { + s+=tree[node].sum-(i-1); + } + }*/ + + if(tree[node].size1) + { + return query(2*node,a,b)+query(2*node+1,a,b); + } + else + { + return 0; + } +} + +int main() +{ + scanf("%d %d",&n,&qu); + + int result[qu+5]; + + for(int i=1;i<=n;i++) + { + scanf("%d",&a[i].val); + a[i].index=i; + } + + sort(a+1, a+1+n, cmp); + + for(int i=1;i<=qu;i++) + { + scanf("%d%d%d",&q[i].v,&q[i].a,&q[i].b); + q[i].pos=i; + } + + sort(q+1, q+1+qu, cmp1); + + build(1,1,n); + + int j=1; + for(int i=1;i<=qu;i++) + { + while(j<=n && a[j].val>=q[i].v) //using the concept of kquery + { + + update(1,1,n,a[j].index); + j++; + } + + /*printf("%d\n", query(1,q[i].a,q[i].b));*/ + result[q[i].pos]=query(1,q[i].a,q[i].b); + /*printf("\n"); + for (int k = 1; k <= 2*n-1 ; k++) + { + printf("%d %d %d\n", tree[k].sum, tree[k].size, tree[k].flag); + } + printf("\n");*/ + } + + for(int i=1;i<=qu;i++) + { + printf("%d\n", result[i]); + } + return 0; +} \ No newline at end of file diff --git a/spoj/CTRICK b/spoj/CTRICK new file mode 100755 index 0000000000000000000000000000000000000000..e3b2d20c97210095bcf68d64e1b7a225f86db977 GIT binary patch literal 13552 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 EFJIsV-2eap literal 0 HcmV?d00001 diff --git a/spoj/CTRICK#2 b/spoj/CTRICK#2 new file mode 100755 index 0000000000000000000000000000000000000000..0051111f8140aa38a9081f1d244fd0bea5de2c12 GIT binary patch literal 13552 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 C!wFRY literal 0 HcmV?d00001 diff --git a/spoj/CTRICK#2.cpp b/spoj/CTRICK#2.cpp new file mode 100644 index 0000000..91eadca --- /dev/null +++ b/spoj/CTRICK#2.cpp @@ -0,0 +1,70 @@ +#include +using namespace std; +#define ll long long + +int BIT[20005]; +int n; + +void update(int x,int val) +{ + for(;x<=n;x+=x&-x) + { + BIT[x]+=val; + } +} + +int query(int x) +{ + int sum=0; + for(;x>0;x-=x&-x) + { + sum+=BIT[x]; + // cout<0 ; i--) + { + /* code */ + rot=rot%i+1; + start=1;end=n; + while(start<=end) //search for the rot-th zero required + { + int mid=(start+end)>>1; + if(query(mid)>=rot) + end=mid-1; + else start=mid+1; + } + a[start]=n-i+1; + rot+=n-i+1; + update(start,-1); + } + + + for(int i=1;i<=n;i++) + { + printf("%d ",a[i]); + } + cout< +using namespace std; +#define ll long long + +int BIT[20005]; +int n; + +void update(int x,int val) +{ + for(;x<=n;x+=x&-x) + { + BIT[x]+=val; + } +} + +int query(int x) +{ + int sum=0; + for(;x>0;x-=x&-x) + { + sum+=BIT[x]; + // cout<=rot) end=mid-1; + else start=mid+1; + } + + a[start]=i; + update(start,-1); + } + + for(int i=1;i<=n;i++) + { + printf("%d ",a[i]); + } + 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 +#include +using namespace std; +using namespace tr1; +int sieve[100005]; +int n,q; +int a[100005]; + +void sievefunc() +{ + sieve[0]=0; + sieve[1]=1; + for(int i=2;i<=100000;i++) + { + if(!sieve[i]) + { + for(int j=i;j<=100000;j+=i) + { + if(!sieve[j]) + { + sieve[j]=i; + } + } + } + } +} + +vector > primefactors(int a) +{ + vector > v; + unordered_map h; + int k=sieve[a]; + // printf("%d\n", k); + while(k!=1) + { + h[k]++; + // printf("%d\n", h[k]); + a=a/k; + k=sieve[a]; + } + + unordered_map::iterator it; + // v.push_back(0); + for(it=h.begin();it!=h.end();it++) + { + v.push_back(make_pair(it->first,it->second)); + } + + return v; +} + +struct trees +{ + vector > v; + vector prefix; +}; + +trees tree[100005<<3]; + +trees merge(trees a, trees b) +{ + trees res; + /*vector >::iterator it1; + vector >::iterator it2;*/ + + unordered_map m; + + for(int i=0;i::iterator it; + // v.push_back(0); + for(it=m.begin();it!=m.end();it++) + { + res.v.push_back(make_pair(it->first,it->second)); + } + + /*for(int i=0;i a, pair b) +{ + return a.firstend) return; + if(start==end) + { + tree[node].v=primefactors(a[start]); + + // printf("%d\n",node ); + + /*for(int i=0;i>1; + build(2*node,start,mid); + build(2*node+1,mid+1,end); + tree[node]=merge(tree[2*node],tree[2*node+1]); +} + +int query(int node,int start,int end, int l,int r, int x, int y) +{ + if(start>r||endend) + return 0; + if(l<=start && end<=r) + { + + /*// printf("%d %d\n",left,right); + vector >::iterator left; + vector >::iterator right;*/ + + int left,right; + int s=start,e=end; + + while(s>1; + if(x<=tree[node].v[mid].first) + e=mid; + else + s=mid+1; + } + + left=s; + + s=start; + e=end; + + while(s>1; + if(x>=tree[node].v[mid].first) + s=mid+1; + else + e=mid; + } + + right=l; + + printf("%d %d\n",left, right ); + /*left=lower_bound(tree[node].v.begin(), tree[node].v.end(), x, cmp)-tree[node].v.begin(); + right=upper_bound(tree[node].v.begin(), tree[node].v.end(), y, cmp)-tree[node].v.begin();*/ + return tree[node].prefix[right]-tree[node].prefix[left-1]; + } + int mid=start+end>>1; + return query(2*node,start,mid,l,r,x,y)+query(2*node+1,mid+1,end,l,r,x,y); +} + +int main() +{ + sievefunc(); + + scanf("%d",&n); + for(int i=1;i<=n;i++) + { + scanf("%d",&a[i]); + } + + build(1,1,n); + /*for(int i=2;i<=10;i++) + { + printf("%d\n",sieve[i]); + }*/ + + /*vector >v; + v=primefactors(10); + for(int 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 literal 0 HcmV?d00001 diff --git a/spoj/Courier.cpp b/spoj/Courier.cpp new file mode 100644 index 0000000..2e1b504 --- /dev/null +++ b/spoj/Courier.cpp @@ -0,0 +1,135 @@ +#include +using namespace std; + +int main() +{ + int t; + cin>>t; + while(t--) + { + int n,m,b; + cin>>n>>m>>b; + int a[n][n]; + + for(int i=0;i>x>>y>>k; + a[x-1][y-1]=k; + a[y-1][x-1]=k; + } + + /*for(int i=0;ia[i][k]+a[k][j]) + { + a[i][j]=a[i][k]+a[k][j]; + a[j][i]=a[i][k]+a[k][j]; + } + } + } + } + + /*for(int i=0;i>z; + + int bit[z]; + int p[z][z]; + for(int i=0;i>p[i][j]; + } + } + + int parcels=0; + for(int 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 literal 0 HcmV?d00001 diff --git a/spoj/DCL2015Etest.cpp b/spoj/DCL2015Etest.cpp new file mode 100644 index 0000000..c9e1ba1 --- /dev/null +++ b/spoj/DCL2015Etest.cpp @@ -0,0 +1,217 @@ +#include + +using namespace std; + +// Input macros + +#define si(n) scanf("%d",&n) +#define sc(n) scanf("%c",&n) +#define sl(n) scanf("%lld",&n) +#define sf(n) scanf("%lf",&n) +#define ss(n) scanf("%s",n) + +// Useful constants + +#define INF (int)1e9 +#define EPS 1e-9 +#define MOD1 1000000009 +#define MOD2 1000000007 + +// Useful hardware instructions + +#define bitcount __builtin_popcount +#define gcd __gcd + +// Useful container manipulation / traversal macros + +#define forI(i,n) for(i=0 ; i< n ;i++) +#define forD(i,n) for(i=n-1; i>=0 ;i--) +#define forall(i,a,b) for(i=a ; i<=b ;i++) +#define foreach(v, c) for( typeof( (c).begin()) v = (c).begin(); v != (c).end(); ++v) +#define all(a) a.begin(), a.end() +#define in(a,b) ( (b).find(a) != (b).end()) +#define pb push_back +#define fill(a,v) memset(a, v, sizeof a) +#define sz(a) ((int)(a.size())) +#define mp make_pair + +// Some common useful functions + +#define MAX(a,b) ( (a) > (b) ? (a) : (b)) +#define MIN(a,b) ( (a) < (b) ? (a) : (b)) +#define checkbit(n,b) ( (n >> b) & 1) +#define DREP(a) sort(all(a)); a.erase(unique(all(a)),a.end()) +#define INDEX(arr,ind) (lower_bound(all(arr),ind)-arr.begin()) + +// datatypes + +#define ll long long int +#define ull unsigned long long +#define ui unsigned int +#define us unsigned short +#define vi vector +#define pii pair +#define gc getchar_unlocked +#define pc putchar_unlocked + +// Faster Input/Output + +inline void get_int(int &x) +{ + register int c = gc(); + x = 0; + int neg = 0; + for(;((c<48 || c>57) && c != '-');c = gc()); + if(c=='-') {neg=1;c=gc();} + for(;c>47 && c<58;c = gc()) {x = (x<<1) + (x<<3) + c - 48;} + if(neg) x=-x; +} + +inline void get_long(ll &x) +{ + register int c = gc(); + x = 0; + int neg = 0; + for(;((c<48 || c>57) && c != '-');c = gc()); + if(c=='-') {neg=1;c=gc();} + for(;c>47 && c<58;c = gc()) {x = (x<<1) + (x<<3) + c - 48;} + if(neg) x=-x; +} +inline void print_int(int X) +{ + if(X<0) { pc('-'); X=-X; } + int Len=0,Data[20]; + while(X) { Data[Len++]=X%10; X/=10; } + if(!Len) Data[Len++]=0; + while(Len--) pc(Data[Len]+48); + pc('\n'); +} +inline void print_long(long long int X) +{ + if(X<0) { pc('-'); X=-X; } + int Len=0,Data[20]; + while(X) { Data[Len++]=X%10; X/=10; } + if(!Len) Data[Len++]=0; + while(Len--) pc(Data[Len]+48); + pc('\n'); +} + +// Main Function +#define MAXN 505 +ll BIT1[MAXN][MAXN],BIT2[MAXN][MAXN]; +ll N,M; +void init() +{ + ll i,j; + forI(i,MAXN) + { + forI(j,MAXN) + { + BIT1[i][j]=BIT2[i][j]=0; + } + } +} +void update(ll BIT[][505],ll x,ll y,ll val) +{ + while(y <= M) + { + BIT[x][y]+=val; + y += (y & -y); + } +} +/*void update_pt(ll x,ll y,ll v) +{ + update(BIT1,x,y,v); + update(BIT2,x,y,v*(y-1)); +}*/ +void update_range(ll x,ll y1,ll y2,ll v) +{ + update(BIT1,x,y1,v); + update(BIT1,x,y2+1,-v); + update(BIT2,x,y1,v*(y1-1)); + update(BIT2,x,y2+1,-v*y2); +} +void update_range2D(ll x1,ll y1,ll x2,ll y2,ll v) +{ + ll i; + forall(i,x1,x2) + { + update_range(i,y1,y2,v); + } +} +ll read(ll BIT[][505],ll x,ll y) +{ + ll sum = 0; + while(y>0) + { + sum+=BIT[x][y]; + y-=(y & -y); + } + return sum; +} +ll query(ll x,ll y) +{ + return read(BIT1,x,y)*y-read(BIT2,x,y); +} +ll query_range(ll x,ll y1,ll y2) +{ + return query(x,y2)-query(x,y1-1); +} +ll query_range2D(ll x1,ll y1,ll x2,ll y2) +{ + ll i,sum=0; + forall(i,x1,x2) + { + sum+=query_range(i,y1,y2); + } + return sum; +} +int main() +{ + ll i,j,q,num; + init(); + get_long(N);get_long(M); + forI(i,N) + { + forI(j,M) + { + get_long(num); + update_range2D(i+1,j+1,i+1,j+1,num); + } + } + get_long(q); + ll ch,x1,y1,x2,y2,v; + + /*for(int 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 HX8->S^Nt6e literal 0 HcmV?d00001 diff --git a/spoj/DQUERY.cpp b/spoj/DQUERY.cpp new file mode 100644 index 0000000..675e3cd --- /dev/null +++ b/spoj/DQUERY.cpp @@ -0,0 +1,141 @@ +// Mo's algorithm : relative property of elements with respect to each other in the query +#include +using namespace std; +#define SIZE 30005 +#define ll long long + +int a[SIZE]; + +int n,d,sq; + +struct query{ + int l; + int r; + int id; +}; + +query q[200005]; + +int counter[2000005]; +int ans[2000005]; +int x=0; + +bool cmp(const query a,const query b) +{ + if(a.l/sq != b.l/sq) + return a.l/sq33){ + *a=*a*10+c-'0'; + c=getchar_unlocked(); + } +} + +/*void add(int position) { + counter[a[position]]++; + if(counter[a[position]] == 1) { + x++; + } +} + +void remove(int position) { + counter[a[position]]--; + if(counter[a[position]] == 0) { + x--; + } +}*/ + +int main() +{ + fastread(&n); + sq=sqrt(n); + for(int i=1;i<=n;i++) + { + fastread(a+i); + } + + fastread(&d); + for(int i=1;i<=d;i++) + { + fastread(&(q[i].l)); + fastread(&(q[i].r)); + q[i].id=i; + } + + sort(q+1,q+d+1,cmp); + + int start=q[1].l; + int end=start; + counter[a[start]]++; + int x=1; + + + /*int start=0; + int end = 0;*/ + for(int i=1;i<=d;i++) + { + /*int l = q[i].l, r = q[i].r; + while(start < l) { + remove(start); + start++; + } + while(start > l) { + add(start-1); + start--; + } + while(end <= r) { + add(end); + end++; + } + while(end > r+1) { + remove(end-1); + end--; + }*/ + + while(startq[i].l) + { + start--; + counter[a[start]]++; + if(counter[a[start]]==1) + x++; + } + while(endq[i].r) + { + counter[a[end]]--; + if(counter[a[end]]==0) + x--; + end--; + } + + + ans[q[i].id]=x; + } + + for(int i=1;i<=d;i++) + { + printf("%d\n", ans[i]); + } +} \ No newline at end of file diff --git a/spoj/DQUERYtest b/spoj/DQUERYtest new file mode 100755 index 0000000000000000000000000000000000000000..2744427550ed8810007c4754bda7ea5311b374f2 GIT binary patch literal 13088 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 u0Y94r1+HVc9qPN8`h7Nyvx)JG-Qgy}pKdS! literal 0 HcmV?d00001 diff --git a/spoj/DQUERYtest.cpp b/spoj/DQUERYtest.cpp new file mode 100644 index 0000000..bfeb6bb --- /dev/null +++ b/spoj/DQUERYtest.cpp @@ -0,0 +1,98 @@ +#include +#include +#include + +int sq; + +struct query { + int l, r, id; +} q[200001]; + +int count[2000001]; + +void fastread( int *a){ + char c=0; + while(c<33){ + c=getchar_unlocked(); + } + *a=0; + while(c>33){ + *a=*a*10+c-'0'; + c=getchar_unlocked(); + } +} + +int cmp(const void* a, const void* b) { + struct query* x = (struct query*) a; + struct query* y = (struct query*) b; + if (x->l / sq != y->l / sq) { + if (((x->l)/sq) < ((y->l)/sq)) + return -1; + else if (((x->l)/sq) > ((y->l)/sq)) + return 1; + else + return 0; + } + if ((x->r) < (y->r)) { + return -1; + } + else if ( (x->r) > (y->r) ) { + return 1; + } + else + return 0; +} + + +int main(void) { + int n; + fastread(&n); + sq = sqrt(n); + int a[n]; + int t, i; + for (i = 0; i < 2000001; i++) + count[i] = 0; + for (i = 0; i < n; i++) + fastread(a+i); + fastread(&t); + int ans[t]; + for (i = 0; i < t; i++) { + fastread(&(q[i].l)); + fastread(&(q[i].r)); + q[i].l = q[i].l - 1; + q[i].r = q[i].r - 1; + q[i].id = i; + } + qsort(q, t, sizeof(struct query), cmp); + int cl = 0, cr = 0, x = 0; + for (i = 0; i < t; i++) { + while (cl > q[i].l) { + count[a[cl-1]]++; + if (count[a[cl-1]] == 1) + x++; + cl--; + } + while (cl < q[i].l) { + count[a[cl]]--; + if (count[a[cl]] == 0) + x--; + cl++; + } + while (cr <= q[i].r) { + count[a[cr]]++; + if (count[a[cr]] == 1) + x++; + cr++; + } + while (cr > q[i].r + 1) { + count[a[cr-1]]--; + if (count[a[cr-1]] == 0) + x--; + cr--; + } + ans[q[i].id] = x; + } + for (i = 0; i < t; i++) + printf("%d\n", ans[i]); + return 0; +} \ No newline at end of file diff --git a/spoj/DQUERYtest2 b/spoj/DQUERYtest2 new file mode 100755 index 0000000000000000000000000000000000000000..3eba6c5e4846f3a125978a31c475f9430cd8c9ce GIT binary patch literal 21384 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 +using namespace std; + +#define N 311111 +#define A 1111111 +#define BLOCK 555 // ~sqrt(N) + +int cnt[A], a[N], ans[N], answer = 0; + +struct node { + int L, R, i; +}q[N]; + +bool cmp(node x, node y) { + if(x.L/BLOCK != y.L/BLOCK) { + // different blocks, so sort by block. + return x.L/BLOCK < y.L/BLOCK; + } + // same block, so sort by R value + return x.R < y.R; +} + +void add(int position) { + cnt[a[position]]++; + if(cnt[a[position]] == 1) { + answer++; + } +} + +void remove(int position) { + cnt[a[position]]--; + if(cnt[a[position]] == 0) { + answer--; + } +} + +int main() { + int n; + scanf("%d", &n); + for(int i=0; i L) { + add(currentL-1); + currentL--; + } + while(currentR <= R) { + add(currentR); + currentR++; + } + while(currentR > R+1) { + remove(currentR-1); + currentR--; + } + ans[q[i].i] = answer; + } + + for(int i=0; i +using namespace std; + +#define N 311111 +#define A 1111111 +#define BLOCK 555 // ~sqrt(N) + +int cnt[A], a[N], ans[N], answer = 0; + +struct node { + int L, R, i; +}q[N]; + +bool cmp(node x, node y) { + if(x.L/BLOCK != y.L/BLOCK) { + // different blocks, so sort by block. + return x.L/BLOCK < y.L/BLOCK; + } + // same block, so sort by R value + return x.R < y.R; +} + +void add(int position) { + cnt[a[position]]++; + if(cnt[a[position]] == 1) { + answer++; + } +} + +void remove(int position) { + cnt[a[position]]--; + if(cnt[a[position]] == 0) { + answer--; + } +} + +int main() { + int n; + scanf("%d", &n); + for(int i=0; i L) { + add(currentL-1); + currentL--; + } + while(currentR <= R) { + add(currentR); + currentR++; + } + while(currentR > R+1) { + remove(currentR-1); + currentR--; + } + ans[q[i].i] = answer; + } + + for(int i=0; ihys|L5$wY{Jv}Lwa+Uvlj!|? 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 +using namespace std; +#define SIZE 100002 + +vector > adj[SIZE]; +long long n; +vector v; +queue > q; +bool vis[SIZE]; +long long dist[SIZE]; + +void addedge(long long u,long long v,long long d) +{ + adj[u].push_back(make_pair(v,d)); + adj[v].push_back(make_pair(u,d)); +} + +long long BFS(long long src) +{ + q.push(make_pair(src,0)); + long long max=0; + + while(!q.empty()) + { + pair node=q.front(); + q.pop(); + + int x=node.first; + if(vis[x]) continue; + + vis[x]=true; + + for(int i=0;i>t; + while(t--) + { + long long n; + scanf("%lld",&n); + + for(long long int i=1;i<=n;i++) + { + adj[i].clear(); + } + + for(long long int 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 W=Y_y!YQOh(RX>LJ5!{Ej{r?LktkCWN literal 0 HcmV?d00001 diff --git a/spoj/EAGLE1TLE.cpp b/spoj/EAGLE1TLE.cpp new file mode 100644 index 0000000..2d7659d --- /dev/null +++ b/spoj/EAGLE1TLE.cpp @@ -0,0 +1,122 @@ +#include +using namespace std; +#define SIZE 100100 +vector >graph[SIZE]; +long long int dp[SIZE]={0}; +long long int l[SIZE]={0}; +long long int r[SIZE]={0}; + +void rootat(int u, int prev) +{ + for(int i=0;i=0;i--) + { + int v=graph[u][i].first; + long long int w=graph[u][i].second; + if(i==k-1) + r[v]=dp[v]+w; + else + { + int nxt=graph[u][i+1].first; + r[v]=max(r[nxt],dp[v]+w); + } + } + + for(int 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 z zg*?v5M{aktIB$2bdH>*7StV(%vJyipbuQ*?8op$H3iY_JW$dM{)3f7`UB|50 zl)7TL)MSDL)RliyQNV`jd-pr^aKusLEL){)gk zQjWm_hHnjbhqp-RPlAV!!Kjxg`^8gxtLr_*X8p= zp)P}eGlI-nN>TL(xTDE=o^O;%noo+KG4xCU&9E7 z+l`{uwn(rDzh`k1uF0f?+p$F(Iz#x8oKTZdM5WDvj?G3<)7DnVQ!o-%lr8wh5Zw4q zDp;U}gUtb|AZP8(5u=C~okch;+SG<3euD#_bi*D@Z5)$D!Oe1uesdFq=n|ykr$6M@ zBKm=KF$+_7@0ARF{$L|2qTxVGs1fzrBGe!-6!JxwrHvvyM`*#b0ri06zxheeC-ErF zet)Pe%ZF0p_o1e9De*zP&V!!IT!w#n++x4CsegZ|(8-K*ud7VY$(;2gSw7~7h`^a# zN_@EMSAc}AA=-5Nd$WAZyjKu&xRiL08Lvwu9rXN*p3Up}{aHSguz!OfXsaeVCg7j? zuIm>N634yxr$>^yzJ9NCP!!egMH4R_Zu>m|9KDmQ>+APVpQZ+J%u~RA4_otT_z>vy zjqtIn=JXYsJ z!>3Vl)-RsuV|p>(51~Wrt4gV5dRpzQ@00pIssDNX;9CUfcD1~}bk*1I@1D3`aY#2b zd&>BEN$P9=>GygDrM`|IEx>KRzjxKYD9>m0@1VV)1&aW8{UfgW`n}=(@&e0k`o$Ni z@3!Y_uKN1@;EE~0<3rci{o3nlU%w|kx)cN) znqQR?WsRqwAWYKV*PvK^3hYLa^TXn-*=CyzXk6jI1hLG{|PEk(jou= literal 0 HcmV?d00001 diff --git a/spoj/EAGLE1param.cpp b/spoj/EAGLE1param.cpp new file mode 100644 index 0000000..741e530 --- /dev/null +++ b/spoj/EAGLE1param.cpp @@ -0,0 +1,127 @@ +#include +#define mp make_pair +using namespace std; +typedef long long int lli; +typedef pair pii; + +vector graph[100100]; +lli dp[100100] = {0}; +lli l[100100] = {0}; +lli r[100100] = {0}; + +void rootat(int u, int prev) { + for (int i = 0; i < graph[u].size(); i++) { + int v = graph[u][i].first; + if (v == prev) + graph[u].erase(graph[u].begin() + i); + } + for (int i = 0; i < graph[u].size(); i++) + rootat(graph[u][i].first, u); +} + +void dfs1(int u, int prev) { + lli mx = 0; + for (int i = 0; i < graph[u].size(); i++) { + int v = graph[u][i].first; + lli w = graph[u][i].second; + if (v != prev) { + dfs1(v, u); + mx = max(mx, dp[v] + w); + } + } + dp[u] = mx; +} + +void dfs2(int u, int prev, lli up) { + dp[u] = max(dp[u], up); + int k = graph[u].size(); + for (int i = 0; i < k; i++) { + int v = graph[u][i].first; + lli w = graph[u][i].second; + if (i == 0) + l[v] = dp[v] + w; + else { + int pr = graph[u][i-1].first; + l[v] = max(l[pr], dp[v] + w); + } + } + for (int i = k-1; i >= 0; i--) { + int v = graph[u][i].first; + lli w = graph[u][i].second; + if (i == k-1) + r[v] = dp[v] + w; + else { + int nxt = graph[u][i+1].first; + r[v] = max(r[nxt], dp[v] + w); + } + } + for (int i = 0; i < k; i++) { + int v = graph[u][i].first; + lli w = graph[u][i].second; + lli best = up; + if (i != 0) { + int pr = graph[u][i-1].first; + best = max(best, l[pr]); + } + if (i != k - 1) { + int nxt = graph[u][i+1].first; + best = max(best, r[nxt]); + } + dfs2(v, u, best + w); + } +} + +int main(void) { + int t; + scanf("%d", &t); + while (t--) { + int n; + scanf("%d", &n); + for (int i = 1; i <= n; i++) { + dp[i] = l[i] = r[i] = 0; + graph[i].clear(); + } + for (int i = 1; i < n; i++) { + int u, v, w; + scanf("%d %d %d", &u, &v, &w); + graph[u].push_back(mp(v, w)); + graph[v].push_back(mp(u, w)); + } + + /*for(int i=1;i<=n;i++) + { + for(int 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 +using namespace std; +#define ll long long + +string a,b; +ll dp[2005][2005]; + +int main() +{ + int t; + cin>>t; + while(t--) + { + cin>>a>>b; + memset(dp,0,sizeof(dp)); + + for(int i=1;i<=a.length();i++) + { + dp[i][0]=i; + } + + for(int i=1;i<=b.length();i++) + { + dp[0][i]=i; + } + + for(int i=1;i<=a.length();i++) + { + for(int j=1;j<=b.length();j++) + { + if(a[i-1]!=b[j-1]) + dp[i][j]=1+min(dp[i-1][j],min(dp[i][j-1],dp[i-1][j-1])); + else + dp[i][j]=dp[i-1][j-1]; + } + } + + printf("%lld\n",dp[a.length()][b.length()]); + } +} \ No newline at end of file diff --git a/spoj/ELIS.cpp b/spoj/ELIS.cpp new file mode 100644 index 0000000..801c757 --- /dev/null +++ b/spoj/ELIS.cpp @@ -0,0 +1,13 @@ +/*simple DP +Tutorial : https://www.codechef.com/wiki/tutorial-dynamic-programming +*/ + +#include +using namespace std; + +int memo[1005]; + +int main() +{ + +} \ No newline at end of file diff --git a/spoj/ENCMSG b/spoj/ENCMSG new file mode 100755 index 0000000000000000000000000000000000000000..3ea6b74a35a876beef3035ff152ffc34802fc941 GIT binary patch literal 14208 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 +using namespace std; + +int main() +{ + int t; + scanf("%d",&t); + + while(t--) + { + int n; + scanf("%d",&n); + + string s; + cin>>s; + + if(n%2==0) + { + for(int i=1;im_Hcsf2HnK~|$&dusm?{lM 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 hOl-7Mci4(c)}QWW6z1S6m4D(sp3FidU +using namespace std; +#define ll long long +#define SIZE 100005 + +struct trees +{ + ll sum; + int ones; + int zeros; +}; + +int lazy[SIZE<<3]; +trees tree[SIZE<<3]; + +trees merge(trees a, trees b) +{ + trees res; + res.sum=a.sum+b.sum; + res.ones=a.ones+b.ones; + res.zeros=a.zeros+b.zeros; + return res; +} + +void build(int node,int start,int end) +{ + if(start==end) + { + tree[node].sum=0; + tree[node].zeros=1; + tree[node].ones=0; + return; + } + + int mid=start+end>>1; + build(2*node,start,mid); + build(2*node+1,mid+1,end); + tree[node]=merge(tree[2*node],tree[2*node+1]); +} + +void update(int node,int start,int end,int l,int r) +{ + if(lazy[node]%2==1) + { + tree[node].sum+=tree[node].zeros-tree[node].ones; + + int temp=tree[node].zeros; + tree[node].zeros=tree[node].ones; + tree[node].ones=temp; + + if(startend || start>r || end>1; + + update(2*node,start,mid,l,r); + update(2*node+1,mid+1,end,l,r); + + tree[node]=merge(tree[2*node],tree[2*node+1]); +} + +ll query(int node,int start, int end, int l, int r) +{ + if(lazy[node]%2==1) + { + tree[node].sum+=tree[node].zeros-tree[node].ones; + + int temp=tree[node].zeros; + tree[node].zeros=tree[node].ones; + tree[node].ones=temp; + + if(startend || start>r || end>1; + return query(2*node,start,mid,l,r)+query(2*node+1,mid+1,end,l,r); + +} + +int main() +{ + int n,q; + scanf("%d %d",&n,&q); + + memset(tree ,0, sizeof(tree)); + memset(lazy ,0, sizeof(lazy)); + + build(1,1,n); + + while(q--) + { + int c,x,y; + // int val; + scanf("%d",&c); + if(c) + { + scanf("%d %d",&x,&y); + printf("%lld\n", query(1,1,n,x+1,y+1)); + } + else + { + scanf("%d %d",&x,&y); + update(1,1,n,x+1,y+1); + } + } + return 0; + +} \ No newline at end of file diff --git a/spoj/GSS1 b/spoj/GSS1 new file mode 100755 index 0000000000000000000000000000000000000000..419a51d974d573fa147c8498e7466968e75de195 GIT binary patch literal 13672 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 CP?#nF literal 0 HcmV?d00001 diff --git a/spoj/GSS1.cpp b/spoj/GSS1.cpp new file mode 100644 index 0000000..2b57512 --- /dev/null +++ b/spoj/GSS1.cpp @@ -0,0 +1,96 @@ +#include +using namespace std; +#define RANGE 4*50005 + +int a[50005]; +int tree[RANGE]; +int prefixsum[RANGE]; +int suffixsum[RANGE]; +int maxsum[RANGE]; +int sum[RANGE]; + + +void build(int node,int start, int end) +{ + if(start>end) + return; + + if(start==end) + { + tree[node]=prefixsum[node]=suffixsum[node]=maxsum[node]=sum[node]=a[start]; + return ; + } + + int mid=(start+end)>>1; + + build(2*node,start,mid); + build(2*node+1, mid+1, end); + + sum[node]=sum[2*node]+sum[2*node+1]; //calculating total sum of range + prefixsum[node]=max(prefixsum[2*node],sum[2*node]+prefixsum[2*node+1]); //max prefixsum + suffixsum[node]=max(suffixsum[2*node+1],sum[2*node+1]+suffixsum[2*node]); //max suffixsum + + maxsum[node]=max(max(maxsum[2*node],maxsum[2*node+1]),(suffixsum[2*node]+prefixsum[2*node+1])); + // maxsum[node]=max(prefixsum[node],max(suffixsum[node],max(maxsum[2*node],max(maxsum[2*node+1],suffixsum[2*node]+prefixsum[2*node+1])))); //maxsum + // maxsum[node]=max(maxsum[2*node],max(maxsum[2*node+1],suffixsum[2*node]+prefixsum[2*node+1])); //maxsum + tree[node]=maxsum[node]; +} + +int query(int node, int start, int end, int l, int r) +{ + if(start==l && end==r) + { + maxsum[node]=tree[node]; + return node; + } + int p1=2*node; + int p2=2*node+1; + + int mid=(start+end)>>1; + + if(r<=mid) return query(p1,start,mid,l,r); + else if(l>mid) return query(p2,mid+1,end,l,r); + else + { + int k1=query(p1,start,mid,l,mid); + int k2=query(p2,mid+1,end,mid+1,r); + + sum[node]=sum[k1]+sum[k2]; //calculating total sum of range + prefixsum[node]=max(prefixsum[k1],sum[k1]+prefixsum[k2]); //max prefixsum + suffixsum[node]=max(suffixsum[k2],sum[k2]+suffixsum[k1]); //max suffixsum + + maxsum[node]=max(max(maxsum[k1],maxsum[k2]),(suffixsum[k1]+prefixsum[k2])); + + // maxsum[node]=max(prefixsum[node],max(suffixsum[node],max(maxsum[p1],max(maxsum[p2],suffixsum[p1]+prefixsum[p2])))); //maxsum + // maxsum[node]=max(maxsum[2*node],max(maxsum[2*node+1],suffixsum[2*node]+prefixsum[2*node+1])); //maxsum + return node; + + } +} + +int main() +{ + int n; + + scanf("%d",&n); + + for(int i=1;i<=n;i++) + { + scanf("%d",&a[i]); + } + + build(1,1,n); + + int q; + + scanf("%d",&q); + + while(q--) + { + int x,y; + + scanf("%d %d",&x,&y); + + cout<X-QXLc9PdV52wxYQOZX5>exbEp`;=`VeyxnAM}*- zm%9wUb^-i8;N|Q*zX1O81@KJ^*q>cMe%Au>k1Ze{75I3S7rBCjev0ei&`mc{-)v!; zwtsMVNQ>*in67C|yX}D18QC9=>ycRNKrkMU#F^&rZr8$*n1H+6TL*@RBHh8>frwdF zzT}RbU3znLIIi^ukCE)*hnlor1!zq z&}dK#>XFf?&f=lq5J99SydMlkhuDsQzom809&MAS$;@jT3vwGhn-L0g2s=P2N52X_ z_9#j={*N&^F7ypw#uRq2IVwc5LH-+{R8FZj8pX`4U>A`mEU_xOlx$w6LZr;veVo#m zHS6Upt8<(960kI;WpWqbaxPQZ`U1Rgy=y4I3+H=t0WRkV+3^gVsSl*|%5)M1>colaZ7a zRzFRqsJScmPE$d44#M|y`+JX5EBic>KT732>V0o;12b0~FrXTj)S2|Hs_j|z%oY8b zoVDfBTFqLv_qbXA_{Zk!+!!`1d!U#ef@6E1t$Y!X?JZu@vdc*sJ!qM=;e&P zNebE1d*|qjKX})%Z=oIH?+mlxmF4sz%Qd)o6b@tR^egt*5pbN~STD z>^YHCp0b@blvk2Hr;^Ikls%_TLU>Yv;)|+rGQ9&`p&G}4oHOmFHv>sBLz(0HQi&_3 z)QMx&Ld+?|(#f8ulFBJzTiBmCwnB*g$zfW%s3w&;HQAF^lkJ(Xx@iS>6a#MAm2CF8 z~Kvztj^3;sFegHS&_^`Rv7{;G7nm12(ZZ9&t<0OzYgyx7%2pr z(}`IdkK}ApIbl0}Cd2#Um1H~kbH?+CzXRQyR9=}>Z9Lp_9DD;Y$vZxIn0t=!6*NRm zc3|SNWcxWa^qe~L2ef#G#MI`Z(gE8W^-)5LVKNyE#A*_bC zxi73qjy;oX$M8ItOrZ3v&&VJUG->DQ_M22vkox=@L}+rvCS@^{Uor)ELh!?kdY({xF%p>CK|E*9%B=p>bklO0*3 z=i&pYny-;=0Q2*0$kHsIzBV_&&;A{OM&k~Q1+Btj~JWsGI8EM3BA%OqX6UP`j9$HuBCccFq%tc3CP zb>g^9-FhMM8r{I|+)G{PyUV8?pUT(x)^RK!WKZ1U=zhO0j6Z%^#%!w{+rsEFx~IBO z-4W17K*vEJM%!Nk9Yw!oK>van_(K6{2uh&ILSI)+nsf{)hxfK zdYs+5YTJi4-FO4RB-4i9Phj^v0Y0bekiGS)D*MZ**|bCL9z`3+;A^g2nQ%DbHZDVI zRNq7R{Sq-)RVe45bUaisQR!G=%2IvwOg@bm{T4K5&;A0pMdfGlJB67+cdT4_$gGOW z-^TA#DF1k2`N4d7E$Y7q<<}IJcbMhW)+Urcg7OHJw>Vv2vbQ+vzUWY#?#YT4=lX{# zRcFJYD%IIMv83JUjX9fr&IX@zeT&l#Imov-tNFg=bFecDJEH5z+G1Laz+wazBd{2O z#Rx1$U@-!V5m=1CVgwc=uo!{G2>f40U}}k%`?UkF$tjHpo-?@6R-TfT(zg&wD@?*% zRbHMGpDS4f-Z)XZj$i3}>pq@aEqIrps|2kU-&1LSPYJIcc>2qg>@Z~x+r30`-+bpB zCNIBzr0gayzhT&g!}1$Q9WxVuCm`}f95RpBS(M~n{t3>R-zO_w%+1i-_x5I(i85@o+eL2{gwph8b9B-#naH_*}B2R-5VPkw=`^N*lIOV z!aFc3o9*5*xIOoMy|B=M-qy>?SLDW5v3w;DKSpuJO76v@8*)lm&X^tr?~yndHqw47uz82 z_Y2_fE`VRl{bX$1GM+!m<4|gUk7(E7YA-M3-xQDw17C@g6mp%Z5UO!uU$8lHXaW0= z0C$y%|M$th{koEQ{ZoO{=d8l?EO3fH9Uq_+;aA39814-YXkmRg7T1D_Q5G5=92tn{k+A0@o3}QV7t;EoLs2alivH zkoCoagApy97#utZl>$zKq+TStqpPd2(GwaO!6~CIJ+dZR^Y#*tLCom(s0u`&t4DDHXXKE(Z7+ET*-6YNxN=-zrW$dA6NvV=^RMu+qC$B6erPk?`m&N+OIzV>E=H5hfARMKr z`*)#_!qFiu5s!q;BVLy3$Wr;^W?DF?2hEdU2n!CWHI{u*0quTpiz7nE$VtVY^FgI z@6s4Qmc~5sgM)go7gUd#v|r|MxGfSJVVv1T`0MrHe!=Y@N_cp9>Z4)iA+A3d z?`NLy!6Dc)sU9;+4n$&cjOQXoLs={`5F`bW8yV1Zj~pa18qtPMBLXnD)h#weClE1H-K$ zr$6WLf@9dvaKhxi+2r!icapyg8QQbT`sIG-yl5z%tay_COF2pJMk(!qC7;_D355=! zPyUmP^k2Y?o@1#hsW10W9YWt)ztorb{X)M*7?k^Xe$o)w69Ol5q+`|pA~1?8`A12< z_izaSPsT+_ge8X=$QA0#eOrUjAJ0je8Tp<>(yvb%!!|vF1h`zJU4Ik->UxtbZZLq<-WIi4L~HTyp{h0 zWXMHXzuX_Y{zLsgLYKN&>dSq!{C^E|qWy9h$ogfw4qNJ%`|ZqH6d*}?lgslG|1$~- z{m<>o-KIu|R1{R|Ntyv(s4w?f9d1)W`YF^){JDYxvL)LupQrb^O^qkybFaxV0SgX# zsGRC=$RTD%>Ni<%lBFc+O5|nTyg*z&d6Su0Aq53)VYwYScMA0nyG?GKZca!v95&)7 X<0jWXnxEzBuUn4-q+2b8*82YmGNg-> literal 0 HcmV?d00001 diff --git a/spoj/GSS11.cpp b/spoj/GSS11.cpp new file mode 100644 index 0000000..975d79b --- /dev/null +++ b/spoj/GSS11.cpp @@ -0,0 +1,80 @@ +#include +using namespace std; +#define SIZE 50007 +struct trees +{ + int maxsum; + int sum; + int prefixsum; + int suffixsum; +}; + +trees tree[SIZE<<3]; + +trees merge(trees a,trees b) +{ + trees res; + + res.sum=a.sum+b.sum; + res.prefixsum=max(a.prefixsum,a.sum+b.prefixsum); + res.suffixsum=max(b.suffixsum,b.sum+a.suffixsum); + res.maxsum=max(max(a.maxsum,b.maxsum),(a.suffixsum+b.prefixsum)); + + + return res; +} + +void build(int node,int start,int end) +{ + if(start==end) + { + int x; + scanf("%d",&x); + tree[node].sum=tree[node].prefixsum=tree[node].suffixsum=tree[node].maxsum=x; + return ; + } + + int p1=node<<1; + int p2=node<<1|1; + + int mid=(start+end)>>1; + + build(p1,start,mid); + build(p2,mid+1,end); + + tree[node]=merge(tree[p1],tree[p2]); +} + +trees query(int node,int start,int end, int l, int r) +{ + if(start==l && end==r) return tree[node]; + + int p1=node<<1; + int p2=node<<1|1; + + int mid=(start+end)>>1; + + if(r<=mid) return query(p1,start,mid,l,r); + else if(l>mid) return query(p2,mid+1,end,l,r); + else + { + return merge(query(p1,start,mid,l,mid),query(p2,mid+1,end,mid+1,r)); + } +} + +int main() +{ + int n; + if(scanf("%d",&n)==1) + { + build(1,1,n); + } + int q; + scanf("%d",&q); + while(q--) + { + int x,y; + scanf("%d%d",&x,&y); + printf("%d\n", query(1,1,n,x,y).maxsum); + } +} \ No newline at end of file diff --git a/spoj/GSS1test b/spoj/GSS1test new file mode 100755 index 0000000000000000000000000000000000000000..1043c15f472e5ca936c3f3e9320cf8ad4687063e GIT binary patch literal 13416 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 +#include +#include +#include +#include +#include +#include +using namespace std; +#define rep(i,n) for( __typeof(n)i = 0 ; i < n ; i++ ) +#define For(i,n) for( __typeof(n)i = 1 ; i <= n ; i++ ) +#define forstl(i,n) for(__typeof(n.begin()) i = n.begin() ; i != n.end() ; i++) +typedef long long ll; + +#define SZ 50007 + +int a[SZ]; + +struct SegmentTree{ int prefixSum , suffixSum ,Sum ,maxSum ; }; + +SegmentTree tree[ SZ<<3 ]; + +SegmentTree merge( SegmentTree a , SegmentTree b) +{ + SegmentTree res ; + + res.Sum = a.Sum + b.Sum ; + + res.maxSum = max( max( a.maxSum , b.maxSum ) , (a.suffixSum + b.prefixSum ) ) ; + + res.prefixSum = max( a.prefixSum , a.Sum + b.prefixSum ); + + res.suffixSum = max( b.suffixSum , b.Sum + a.suffixSum ); + + return res ; +} + +void BUILD(int node , int start , int end) +{ + if(start == end) + { + int X; scanf("%d",&X); + + tree[node].prefixSum = tree[node].suffixSum = tree[node].Sum = tree[node].maxSum = X ; + + return ; + } + + int l = node<<1 ; + int r = node<<1|1; + + int mid = (start + end )>>1; + + BUILD(l,start,mid); + BUILD(r,mid+1,end); + + tree[ node ] = merge( tree[l] , tree[r] ); +} + + +SegmentTree Query(int node , int start , int end , int x , int y) +{ + if(start == x && end == y) return tree[node]; + + int l = node<<1 ; + int r = node<<1|1; + + int mid = (start + end )>>1; + + if(y <= mid ) return Query(l,start,mid,x,y); // whole side is in left + + else if( x > mid ) return Query(r,mid+1,end,x,y) ; // whole side is in right + + else + { + return merge( Query(l,start,mid,x,mid) , Query(r,mid+1,end,mid+1,y) ) ; // split in two side so merging + } +} +int main() +{ + int N ; + while(scanf("%d",&N)==1) + { + BUILD(1,1,N); + + int Q ; scanf("%d",&Q); + + while(Q--) + { + int x , y ; + scanf("%d %d",&x,&y); + printf("%d\n",Query(1,1,N,x,y).maxSum ); + } + } +} \ No newline at end of file diff --git a/spoj/GSS3 b/spoj/GSS3 new file mode 100755 index 0000000000000000000000000000000000000000..8ccd1a5882c7e68467e62de8160d48bf67d1fe0a GIT binary patch literal 13392 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

n=&%q`t-4Yn| z&^WbUouil)sb6cOlPnbp>A$bYwmC!m3~w_lYowr{+fZ&t&K;}%gxAC-#Qddn*p5r~ VU#@>NKZ~_rU1{pK+L-qC{|Ckyatr_f literal 0 HcmV?d00001 diff --git a/spoj/GSS3.cpp b/spoj/GSS3.cpp new file mode 100644 index 0000000..93d8c82 --- /dev/null +++ b/spoj/GSS3.cpp @@ -0,0 +1,111 @@ +#include +using namespace std; +#define SIZE 50007 +struct trees +{ + int maxsum; + int sum; + int prefixsum; + int suffixsum; +}; + +trees tree[SIZE<<3]; + +trees merge(trees a,trees b) +{ + trees res; + + res.sum=a.sum+b.sum; + res.prefixsum=max(a.prefixsum,a.sum+b.prefixsum); + res.suffixsum=max(b.suffixsum,b.sum+a.suffixsum); + res.maxsum=max(max(a.maxsum,b.maxsum),(a.suffixsum+b.prefixsum)); + + + return res; +} + +void build(int node,int start,int end) +{ + if(start==end) + { + int x; + scanf("%d",&x); + tree[node].sum=tree[node].prefixsum=tree[node].suffixsum=tree[node].maxsum=x; + return ; + } + + int p1=node<<1; + int p2=node<<1|1; + + int mid=(start+end)>>1; + + build(p1,start,mid); + build(p2,mid+1,end); + + tree[node]=merge(tree[p1],tree[p2]); +} + +trees query(int node,int start,int end, int l, int r) +{ + if(start==l && end==r) return tree[node]; + + int p1=node<<1; + int p2=node<<1|1; + + int mid=(start+end)>>1; + + if(r<=mid) return query(p1,start,mid,l,r); + else if(l>mid) return query(p2,mid+1,end,l,r); + else + { + return merge(query(p1,start,mid,l,mid),query(p2,mid+1,end,mid+1,r)); + } +} + + +void update(int node,int start,int end,int x,int val) +{ + if(start==end) + { + tree[node].maxsum=tree[node].prefixsum=tree[node].suffixsum=tree[node].sum=val; + } + else + { + int mid=(start+end)>>1; + if(start<=x && x<=mid) + { + update(2*node,start,mid,x,val); + } + else + { + update(2*node+1,mid+1,end,x,val); + } + tree[node]=merge(tree[2*node],tree[2*node+1]); + } +} + +int main() + +{ + int n; + if(scanf("%d",&n)==1) + { + build(1,1,n); + } + int q; + scanf("%d",&q); + while(q--) + { + int c,x,y; + scanf("%d%d%d",&c,&x,&y); + + if(c==0) + { + update(1,1,n,x,y); + } + else if(c==1) + { + printf("%d\n", query(1,1,n,x,y).maxsum); + } + } +} \ No newline at end of file diff --git a/spoj/GSS3test b/spoj/GSS3test new file mode 100755 index 0000000000000000000000000000000000000000..31300919495c208d9f7bb35235bb80a4cd2e84b2 GIT binary patch literal 13064 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 +#include +#define MAX 100000 + +using namespace std; + +struct no { + int lsum, rsum, msum, sum; +}; + +no tree[ 4 * MAX + 1 ]; +int sums[ MAX + 1 ], array[ MAX + 1 ]; + +void init( int node, int i, int j ) { + if ( i == j ) { + tree[ node ] = ( ( no ) { array[ i ], array[ i ], array[ i ], array[ i ] } ); + } + else { + init( node * 2, i, ( i + j ) / 2 ); + init( node * 2 + 1, ( i + j ) / 2 + 1, j ); + no left = tree[ node * 2 ], right = tree[ node * 2 + 1 ]; + tree[ node ].lsum = max( left.lsum, left.sum + right.lsum ); + tree[ node ].rsum = max( right.rsum, right.sum + left.rsum ); + tree[ node ].msum = max( left.msum, max( right.msum, left.rsum + right.lsum ) ); + tree[ node ].sum = left.sum + right.sum; + } +} + +void update( int node, int pos, int val, int a, int b ) { + if ( a == b && a == pos ) { + tree[ node ] = ( ( no ) { val, val, val, val } ); + return; + } + else if ( pos <= ( a + b ) / 2 ) { + update( node * 2, pos, val, a, ( a + b ) / 2 ); + } + else if ( pos > ( a + b ) / 2 ) { + update( node * 2 + 1, pos, val, ( a + b ) / 2 + 1, b ); + } + no left = tree[ node * 2 ], right = tree[ node * 2 + 1 ]; + tree[ node ] = ( ( no ) { + max( left.lsum, left.sum + right.lsum ), + max( right.rsum, right.sum + left.rsum ), + max( left.msum, max( right.msum, right.lsum + left.rsum ) ), + left.sum + right.sum } ); +} + +no query( int node, int a, int b, int i, int j ) { + if ( i == a && j == b ) { + return tree[ node ]; + } + if ( j <= ( a + b ) / 2 ) { + return query( node * 2, a, ( a + b ) / 2, i, j ); + } + if ( i > ( a + b ) / 2 ) { + return query( node * 2 + 1, ( a + b ) / 2 + 1, b, i, j ); + } + no left = query( node * 2, a, ( a + b ) / 2, i, ( a + b ) / 2 ); + no right = query( node * 2 + 1, ( a + b ) / 2 + 1, b, ( a + b ) / 2 + 1, j ); + return ( ( no ) { + max( left.lsum, left.sum + right.lsum ), + max( right.rsum, right.sum + left.rsum ), + max( left.msum, max( right.msum, right.lsum + left.rsum ) ), + left.sum + right.sum } ); +} + +int main() { + int i, N, q, op, l, r; + scanf( "%d", &N ); + for ( i = 0; i < N; ++i ) { + scanf( "%d", array + i ); + } + init( 1, 0, N - 1 ); + scanf( "%d", &q ); + for ( i = 0; i < q; ++i ) { + scanf( "%d%d%d", &op, &l, &r ); + if ( op == 0 ) { + update( 1, l - 1, r, 0, N - 1 ); + } + else { + printf( "%d\n", query( 1, 0, N - 1, l - 1, r - 1 ).msum ); + } + } + return 0; +} \ No newline at end of file diff --git a/spoj/GSS3try b/spoj/GSS3try new file mode 100755 index 0000000000000000000000000000000000000000..a8f7b0cb43ee7c58b5e00c19baab330b55a12fab GIT binary patch literal 13392 zcmeHOdvH|Oc|W@=foxzU{785eHZe31M{5ZL6@}WnLJL>61S--x6bE0ec2}^mUf#V+ zz%8*n0@ru0m1$<#SAa_hi;}|A(zU`BQqKcihO6E!81?P|FDSf1uu+2m6(M1&uK)pA z6nMpAK`P9ck2A=QVx9gCP6BuEg2D%6993V92nA_JY_eOjQm~h-?BE53C&)2CVbwlr z8(rP>b2RG)u6Z#VfT-5oo_ye5@LA1I3X z0bDc&NdDL-ezbM{7d!st?I(s0zk1ho+;#N}i%5R~F7hGT1&<(zN3bsRZnG$r{yhcu zeI-N`m#+kW)hzrMz%S+J+q3ZBnuWh%7XO!L(cd+T{+DObPe}g2yZ}lzKtH97SoGnC zsc$whUEkl+*Q=+DNYc=CrayjA-yPqdNEz|uw(dwO6;Cm}sl7#y#gmfV-mFkaRS!v1Mooz;aqA#U)MpE&*rrw0nSQ|RX^qKr^#7A6F6%wL}KBGquJfn9-65Xsn zndmjT5Nh;LM2{HpLkWYWqLE%=k(rFXCz9x8JDQssw(Z%YZ}8WNvcBF{TJPV8REQz$ z0j3gNWqj;WmR$UgF*PoXb+2Fwd)NdC0WRo&5t!rz4Z zRR_m3W<|Z6WJ`R4KOZEGX$3wTU(IEbt+ny(>s^hFZ=dh=Holr8lxcyp??z3EcsHE)1vmqu$ix-_ydz_Oo#;d@<`s~Q=5b3Ym$)~Y*zw83ew zW`6(R@;Av9HFxp8vn0q(K=~;5zwbP?vdgdNGb9gdFZ>60FnZSm2bwvhjbKN->OBzjRRtQ%(t6446F>S*_9w-Lfy?1lD zx6e}x+t9?d=8!(v4`FFSRJ;m~=>sY48h&QY#2Jo$MFH)llp$zjphOYd2b36GBM`~~L@W!71O)E6EC3O4w zm6Wrs%t~LeTE?s}iG${pc`>^J8NcWXdA@f1=vUwG$`r!XO`5I+d zB!3v0u9uk(hJ)=i(2?ycX8N)jzF@XwknPh}=<=3OCXGNZYzduCFULf*4_w*Zlb3lK zE<;OaNa;WQC5kSLFZe%`_y4!k=$8G+kXZ4pG%bpCYEk?t zq+(G-QmV`&cg*zk;E_A7^v7N}0ugQ~E6=iTjk4??fcoYhtPN*~JWG#**_Xf@7S?A- zSES|*)Ftz59+}3iV+w1+v{i-QDT{4BcVr%wZj}+2?tee^vI)<`0_9_Z#6M_rSO|c;2OL zzLov~JzzYwk9t1%bWlG(T)5x<Isu}nimP7-168&)s_+!Y*HQ=ql$AP7}#Tw|32c(%R_@6 z&$BMBLuORp%eWr;c`o;9r(Q>~9_25NJT15DH4S-QE*mWOEE2jD*Ep^{$m4@{Jx>)^ zAo(3!uOYwm1d@*{DncUp3fNUc{-|AkxFFvO`4f;oXqUGNIpyS2koQ9#CwYUn>W|zF z-X)*&guK3?vIg(km&-M8&5QFiZ~fr>7H=Twtq*!@g5I?aULW+J-{7s_{dod@M&O4Y zQs-bU19KUe%fMU)<}xssfw>IKWneA?a~YV+!2h=l49^enCf!;jaKEHgJFz9=;KcMT zgn;(i1Xc3_9OI)1hZEia$4dp7|IWHx(&{_PGD%m+@2RvOB*2!I!%y$#`lvAC4iL(J z^PTVrT7CP-xCO1gVYp?$>Kn)sCV=lDWtosimGP>CK<)ir=Tu>zPv2_@J}eNvOaypI z@mnRW;#T$HqYwv050mauLr5`*v{Iv%YJ=Q;x35~O8lb4 zenVfW|P0lUzHw=Zh`7xN!v^clQ(SU%S;*jG2W&Y1FefLHZy)&58cemrX2l3o{3-MSbzPJ?_8G~x&K0( zYJG0w{F(WDPWn;nJxC7p4aZfYU;Z5YQtkR{u8&n4ZU@xj z=o#*3<~Tfoh1|zxjw=KDrOuDM#Q9!EU#kh!ec*Kz?n6E^a-67l$s^GBan0hNznq2t z3im&AUcbfp#Xg9dn1!F4g};=?$=HBnJU`0wFw_5D*{+d_02lIi)hKm=zZfSe)H+ip zP1Dl9B=hK{S^R$q{HhZ9e}nwHm(G~iZ%ICVDzU?5@G1Xve1IU%e;K>Z{TJq)WV4&# ze-!#m>aUf8pL0J-tAN{(&nmWzRmgdyBp>pKdXFp!a29{}j?!xIsa?)>>0zn=b-8Zb zkdC%WKAn3Y;P2*v-{JAhypIH>{{8m`NS*O-1HiPfEk>LJz7CYo&tHjf%%VvnWu&{h z{8607d3@V$y}7Ba9Vdwj2ZnT`M~~8xAsi*rV}1Jm?!L}Qw;nV4k|{lsKE$GZJ^kHr zBOder*2c|srIqxqL~lZmB$JWDdc4<29%fz1NKagkrF(h~!^B4E&@_rvceJ%_fQdia z-;eW0ZANpwt|$6P4P;%dP6vpLM3fsQBHfASK;ckSq&J3hPbnjrj&iytkzo3c=3NcJ zW|*Wq^(Ng&#&HNr-@ZH864FCE8|erY&w?uBJewZUq=MGCJMUoE_U&zSM8 zqM&2N41PL`>5ad)GuYC!O`eAe1o&AeoNuC2P4XmEG?nI=0{uUq>neQ`OZt^(sAin7 za#mY7ljV@i^iJo$9NvG~(Xzc8JJX5oSc0tinPo)o{>9L3r z5og4Z793y8cT_CZryoEs(?K?Il8o{v#)aOQN+}}@nGHRWLrsa$?kC#yw)ON67RATZ z3h`hF@7?%pI-Wd?*eUurML^7+cyfPyBMq8Vo6h)wHGS`oA&c;RVQN1Pt<`(>Hzb{4)?;Jz(!I?4#txy z4DTXBhb$TIj*x*Y^>-W0&vW5N(Z9bBB+lO9m!=|=`gp7S@dI-59f-k+qJ*iKg~CFW zKOKb{s)_U@qKKi-Aot)yl6I$i`{^Iq)d26d!?lKT;(b>b-}Mida>du!+lV zul9E}(td!HY@pt!D100;yS>^6o|N_~Ugg3`zv{5h%nNYUjI_T&gWCqGUd8${3ikTd zzVZYfkqFd#5kbvt|6f5s_NxEXbKyy8?|hb)!%DehVxLm5zaXE>)Oq^uyrw8P?azX3 zuV3wFYbu5QZ4%nRnZLIoqfq5^$?tpB`Fdx*oc8a+ma0GU`t)C?A3l-{r`sv*?u`3^6{v4jX3I8`|{~k5CEL7Vcld*_gJkSZ)m!48#E z{WW=xC@A|n2cL8a6kd$7s+$Ys&%nc?uuv&VzJug`)ZDS#kN5;NBIhp+hxNEr`_=kK S^Rra_HEV@^t3&9l|Gxo^w{B +using namespace std; +#define SIZE 50005 +struct trees +{ + int maxsum; + int sum; + int prefixsum; + int suffixsum; +}; + +trees tree[SIZE<<3]; + +trees merge(trees a,trees b) +{ + trees res; + + res.sum=a.sum+b.sum; + res.prefixsum=max(a.prefixsum,(a.sum+b.prefixsum)); + res.suffixsum=max(b.suffixsum,(b.sum+a.suffixsum)); + res.maxsum=max(max(a.maxsum,b.maxsum),a.suffixsum+b.prefixsum); + + return res; +} + +void build(int node,int start,int end) +{ + if(start==end) + { + int x; + scanf("%d",&x); + tree[node].sum=tree[node].prefixsum=tree[node].suffixsum=tree[node].maxsum=x; + return; + } + int mid=(start+end)>>1; + + /*int p1=2*node; + int p2=2*node+1;*/ + + build(2*node,start,mid); + build(2*node+1,mid+1,end); + + tree[node]=merge(tree[2*node],tree[2*node+1]); +} + +void update(int node, int start, int end, int x,int val) +{ + if(start==end) + { + tree[node].sum=tree[node].prefixsum=tree[node].suffixsum=tree[node].maxsum=val; + } + else + { + int mid=(start+end)>>1; + if(start<=x&&x<=mid) + { + update(2*node,start,mid,x,val); + } + else + { + update(2*node+1,mid+1,end,x,val); + } + tree[node]=merge(tree[2*node],tree[2*node+1]); + } +} + +trees query(int node,int start,int end, int l,int r) +{ + if(start==l && end==r) + { + return tree[node]; + } + else + { + int mid=(start+end)>>1; + + /*int p1=2*node; + int p2=2*node+1;*/ + + if(r<=mid) + { + return query(2*node,start,mid,l,r); + } + else if(l>mid) + { + return query(2*node+1,mid+1,end,l,r); + } + else + { + return merge(query(2*node,start,mid,l,mid),query(2*node+1,mid+1,end,mid+1,r)); + } + } +} + +int main() +{ + int n; + if(scanf("%d",&n)==1) + { + build(1,1,n); + } + int q; + scanf("%d",&q); + + while(q--) + { + int c,x,y; + scanf("%d%d%d",&c,&x,&y); + if(c==0) + { + update(1,1,n,x,y); + } + else if(c==1) + { + printf("%d\n", query(1,1,n,x,y).maxsum); + } + } + return 0; +} \ No newline at end of file diff --git a/spoj/GSS4 b/spoj/GSS4 new file mode 100755 index 0000000000000000000000000000000000000000..cc188833ceeee82a8098143cfde09fdf9f36c350 GIT binary patch literal 13600 zcmeHOeQ;FQb-%kSfy~FQz{KXmh8-Ik8Hcq5LJ`5ScO^Y|@<R=n{j0i~ednIvJ?GqW&;5AszIU}(Y1!m-IG9XMb{`{d-)ujJ%qwGE zYd9;gdUg}@vlZ+%HVa5Oetup;)XYhm6Q(7t5OOZiGW_bDCQ$G6^NggonJ{WFlk|`% z)i;^^B5Tqs3rtp0#=IOLJ@PesJ7+<=ct+A^g&*wIUzh?yk6_ZPSZ=}<%e#0+(yL?` zNmAK9Y8(AJgxwCO9~|+1BCLsDCn?EN+WL+jru+*Y&Vu@RM$(uGGfAc1L(n5Xf8SIo z1lvS?)5T@6@Ly8VTy{?^+Fe(BPb|D97LBI|)(q6wt*NW^rTTqqdArFz$!^}#$!n5v z^nxRw7vV=^fXYAlR_2YiZ4IkEFO4pGW&ZPTO*P6+rcK2g35Q>O zrc0?OlRB{>=^>m8J)wnqpU`@O(HKjl^-ymx$r8zET<<{(LIXi9s7D5(I!lFuae_!) zG^#HcjkC=y%?*v(THjjVdNcpXBicG&Z2_;P;FwdviE-=XdE(2k8qqj*;O|9HIlj_M zqc_n?^&4Q6sN4Z6%k{gyj-|rITm&LHVDT6zl~Y<2jbf;mF%QZKGwnGG_Hrw_NQ}=7 z(=X1l#ojKSnT@M3&3Uf{mum(UR9SHAx>{|)t?Np?1*bY>@>_5@N2yG;;0Q<|ZMEQY z3n*icSnzokTphepp=QdJC0?c;8qv$MFQZT${O5`>ix9H;^=l!LUsa2%XN4a*;(JMG z;$j|Y)oS7?G!x^Tzk_%R;lv2%mlE$H{`;I?NIZpX;wb0m5Kp0+ILvt`@f4zoeVqU8 zV(=82i3I0AB%W>y6J4A?0KVric%EwBYc|e4t{QKvgO{#u?PxwV(&h0p_0;H9H<44P z=J{E62NXZ<@vLZK?D$g%P^Y>k0iq7(+^X@;&Sl5R6oqBM_F*c>Uxe^MZh!k2MWM$h z`4d#$sqTND8yLOef&taIs*YywR~;wSvp4k56|Bvb);ufN_A#^meP3>d|17RsKwEQRb=^E}2m@!^jeP#~G4h}tE>szNE*RU9huGxYUmAh^zAZr|7#-@bHiCAfIe`fZ_Owdpfh^0Of5eRp_9xp@jW;* z1!fc9Ah`2yxsvI;lxc-X*7&(`D%*y5Wt2-pDx86n zS2*}(4$4Z0j*x38lTL6?Gg~oZSf(|rhF(`k-$DyUO?-ozd9p$^&Z@?1*(9Q&8W;ub z6_`y`k8UqSroIpvqjkK=P|olGji*<@_l?S#qDGr`*~DM}KCM&EY*a4oU6$E%Ceu1j zZB0{K14a&w-HUcz4ri2ch&;WVnw@Y+L2A4y^%au3FS7?>vKzP$MXE6-0#?xHku#NV zBMHZOw6^|tw-!E}^L*_EjH(Q|eBSfivpg@O&b!+43OhLBIrJni;R9%A@%TWa9&$1E zq3ZdGKbb5JkC6a=1+Bi#@e;d8un`#1(zTFw6Kqp)Oy(+Mg8_86iwG#FY+=O zwa+kCPySC~tX`gd_;T6d%Z|gAZp3V^wyhYalq-lBJ8=}#V_3(+$`^<1=HKS?gSout z&qvUA2b*|MuNWtXpDIZF^uP1@Qwo2m&y)|`>}4C2t9w76QLgeC=2FXPalpDYe4wE6 zAyfvTa{1?(@=ee%UOPc`57Q+(M6M5Em4M2mAHz_=ydT<{H##pI8WH}y1O;^n({`xy z5_B$-&Q}Z7WJm{-M#*k??dgSxxuJYaO9ibYAMHYA5t!7uaD_`vl3FvHW{f zZ!S}068DQ-kLQEeF~L^1=05a1G}`0wjqIL9SN*0QPt|C4fcs$HzXE?8csO9>1D%16 zmZ4Sey1lp=4y}0~w7uE5)@;1lau?m1D%8w<^pU@yzSJb5;0D zbJ(g_EDVVLczzCZEOTw7Cl-4Cxfd?{5cCQt-O=AhTP}cxF$}JQK8>Ng5<@J80oDS# z?vs382Ymw_@Vw z0ReaAGtS2Ovz&WSvuP&`xC`xE3O@_w%Am_t>EJS?M)f_1UmN1^J^|7WbY{&UH!}~)m=Y0yVdPa zy6Xe(>VUhd!R>_{m*R~Ar6v4|*8}1^ z>oUR1?;A@6pA+S@f1-pfAW#2wBi~P%BThe&!Z+W_GLx6zBu1PjPp={m-~56;>QIq{g(B~Zyl1ycAU3I74q1A zb6)y!Rq(4txv1{{oXGFk_KMyW{d!H%S$H2q=@vo%NYFY#HwpT%pgn?eCCg=VW8;^+ zRh`}GxSsZ|_tpBU*VLssSMzjDov*sqx8W`m_pYt3sjIH5-eA!#opoXK);s-E3h6st zM@ihp^pbd4VZ2$5xiI=hO3Ke-ay%Bx&t|3i(S^}1`@dNJCML&GF+PXM@m7q_EzG-O zd>$JY{Z)+5XNeO1;bQK>Iges_PhlPxVng)N4+n+kGf5h=(8^rx= z8vKK4a5wjJs+}r<)BAjDY6b4K0wNz3?ahhj6aEeuWoh6Ga1uhUKV?Gxps;T@^^Ixl z{{VPpiGH~QH{t~t&-7h~Y2arQ@so4_&LPii6eJAaB8pJ|CK_1 zr-<_bVQ4+a1!Ezbg*=@{pv2#igTBT6pL#!Pf&3lt=O0BJ_&amb6L#2KKRCwtJ9*IW z0q61eb`i|jfiaVYl6p!{_w@KeIJWaZW1H5}+}?qcNRtPSG`&v?(UBt@Mbg6k+KyO% zcQB@f_5Nf^3#JEHsJ|}}i|CQC?~Cg<)Rq>~dZO{D7EC6CyR=ALPwrwp$zWeZ3#a?~ zc0t9$X^_;5L^rp$*ZM+<1P(8?>n-(~7VRe)u(dTB9W&CSA+8k-#-h8y;Y3w19>$@m zl%7n7IA0x&GHr9qgAIWesHD5KW-X3-H?;*?6;0XFM2D|<`(+*{=QKqX0%}uRLHof? zo7$BQts~ITqL5ONyWwJhpX*{;(^s|xTALfiktx65dK^j|mI|fPJVwy})DvOi1eVQC z>4RNDNSwEtax%+i!*Z6(Rx;H(9VfF{|6M25wyp0@M`PhA^+WT6=(TV(uBB6vuz6_A zRvlR?eXdOl2lb$NwhXbtX}Ch~g;V`nFZ!L%#hEA2D5&O0(YjNqf>QB;w#k|?cDJp6 zG95|of|ulHgz6%&FOu95S+6G}kyN|J=!D#)7M*G1humm%)>2vXfU;!+`Z1nHJO^qp zMk8@LuBSzNnjc9e+x42Y7&a-mrbl)}lFc2O@PeIK${bltCYUeYuSa}=hUPVTaEIXFjgR-hnrN8$i0cie zdYLc0D-L@m)stq)&PXzaNmRsWC`(3SK~fO8L`-Ks9$z1_z8(EwaSjkyn(Ywk=kfDJ zdd2+i4a11!OjUEDn;J6zCn1QTnqXfv1Rwf!G7p40!-tM!J}fzXSVqhx?6X|yd5~^M zSY~;W`y6?0TJD=gF_)EjqIcp)dsV3~_e1hrvKM96B=0j4qjlS=FZWHlFt}0*3ToGH z0*+6@{j&ZePCu7CV$(0@=;Z!iuxtx5w3nCqBThd!hW!{PY%9N8o97@YYu|@I3=FrH zg1+3ZRSHMt`vTM2au>huUjn~mhqSVOF2oOfIjX0B`^1Xs!&LXis*d? z`6>MuFr(*na#iZfed2MUk0)53Wc^ZK;s;Sm`VFR7VLv%86wV8rSkkfUKM#!JD&M!r z_dUl1Am8IageMVJ$ua{utG?Wyjtl*x1xYg_-w#Rpf=xd$+s_3PG$@gzza}@8{|gjY z>)$8z_X+*C1(o`;UdeyQrZ3-bg*~Q(e9t50?d|^?p)dPSKEEb}{z|DRs9paDHhuYj z0P_C>VxOWvY}03QKQ0=|&qrBo*yH&+%G~(T*rX))Kl1+t?D4YezX=^`s??YJ``qnh zZEAnn_1}UF^`F!)?4y^H_NVK=3mF<}QeVC=kpIsi|8GMK$HI7$?K%QoYyI-QLT&{L zknH|SUeXUBW7TKgE>dI6%df18CUx^(0UGXu@Rs_lf!w zUQ?p?C%-T=;ws<*M(5M1{^|l^W~6?t4JTPjk}g1A*3ApVrTq(LhW7K;WMjD}g`)MtsMDw#${YR^KF?-ooXs`c&0Y7ufqyPW_ literal 0 HcmV?d00001 diff --git a/spoj/GSS4.cpp b/spoj/GSS4.cpp new file mode 100644 index 0000000..7bbe953 --- /dev/null +++ b/spoj/GSS4.cpp @@ -0,0 +1,162 @@ +//not using lazy but tackling the nodes which are 1 for optimisation + +#include +using namespace std; +#define ll long long +#define SIZE 100100 +int n; + +struct trees +{ + ll sum; + bool flag; +}; + +trees tree[SIZE<<3]; +ll a[SIZE]; + +trees merge(trees a, trees b) +{ + trees res; + res.sum=a.sum+b.sum; + res.flag=(a.flag && b.flag)?true:false; + return res; +} + +void build(int node,int start,int end) +{ + if(start==end) + { + tree[node].sum=a[start]; + if(a[start]==1) + { + tree[node].flag=true; + } + else + { + tree[node].flag=false; + } + return; + } + int mid=(start+end)>>1; + + int p1=node<<1; + int p2=node<<1|1; + + build(p1,start,mid); + build(p2,mid+1,end); + + tree[node]=merge(tree[p1],tree[p2]); +} + +ll query(int node,int start,int end,int l,int r) +{ + /*if(l>end || r>1; + int p1=node<<1; + int p2=node<<1|1; + + return query(p1,start,mid,l,r)+query(p2,mid+1,end,l,r);*/ + + if(start==l && end==r) + { + return tree[node].sum; + } + int mid=(start+end)>>1; + + int p1=node<<1; + int p2=node<<1|1; + + if(r<=mid) return query(p1,start,mid,l,r); + else if(l>mid) return query(p2,mid+1,end,l,r); + else + { + return query(p1,start,mid,l,mid)+query(p2,mid+1,end,mid+1,r); + } +} + +void update(int node,int start,int end,int l,int r) +{ + if(l>end || r>1; + + int p1=node<<1; + int p2=node<<1|1; + + if(r<=mid) + { + update(p1,start,mid,l,r); + } + else if(l>mid) + { + update(p2,mid+1,end,l,r); + } + else + { + update(p1,start,mid,l,r); + update(p2,mid+1,end,l,r); + } + tree[node]=merge(tree[p1],tree[p2]); +} + +int main() +{ + int count=1; + while(scanf("%d",&n)!=EOF) + { + printf("Case #%d:\n",count); + // ll a[n]; + for(int i=1;i<=n;i++) + { + scanf("%lld",&a[i]); + } + build(1,1,n); + + int q; + scanf("%d",&q); + + while(q--) + { + int c,x,y; + scanf("%d%d%d",&c,&x,&y); + + if(x>y) + { + int temp=x; + x=y; + y=temp; + } + + if(c) + { + printf("%lld\n", query(1,1,n,x,y)); + } + else + { + update(1,1,n,x,y); + } + } + count++; + printf("\n"); + } + return 0; +} \ No newline at end of file diff --git a/spoj/GSS4BIT b/spoj/GSS4BIT new file mode 100755 index 0000000000000000000000000000000000000000..86925298433b0738a587e4e1e59a19e4838f5003 GIT binary patch literal 13696 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 literal 0 HcmV?d00001 diff --git a/spoj/GSS4BIT.cpp b/spoj/GSS4BIT.cpp new file mode 100644 index 0000000..c89ac54 --- /dev/null +++ b/spoj/GSS4BIT.cpp @@ -0,0 +1,144 @@ +#include +using namespace std; +#define SIZE 100100 +#define ll long long + +ll BIT[SIZE]; +ll a[SIZE]; +bool flag[SIZE]; +int n; +int root[SIZE]; + +void update(int x,ll val) +{ + for(;x<=n;x+=x&-x) + { + BIT[x]+=val; + } +} + +ll query(int x) +{ + ll sum=0; + for(;x>0;x-=x&-x) + { + sum+=BIT[x]; + } + return sum; +} + +int find(int i) +{ + if(root[i]!=i) + { + root[i]=find(root[i]); + } + return root[i]; +} + +void modify(int x,int y) +{ + /* Basic Idea : + + iterate from x to y and update each element a to sqrt(a) + i be the index between x and y + update(i,-a[i]) + a[i]=floor(sqrt(a[i])) + update(i,a[i]) + if(a[i]==1) set a flag for ith index*/ + + /* + + simply using a flag for the ith index is giving TLE + + for(int i=x;i<=y;i++) + { + if(!flag[i]) + { + update(i,-a[i]); + a[i]=floor(sqrt(a[i])); + update(i,a[i]); + if(a[i]==1) flag[i]=true; + } + }*/ + + /* + Modified Idea : + + recursively find the next index which does not have it's square root as one using an array root + it stores values at index i = i if square root of the ith index is not 1 + else it stores value at index i = i+1; + + */ + + int k=find(x); + + ll s,sq; + + while(k<=y) + { + s=query(k)-query(k-1); + if(s!=1) + { + update(k,-s); + sq=sqrt(s); + update(k,sq); + + if(sq==1) + { + root[k]=k+1; + } + } + k=find(k+1); + } +} + +int main() +{ + int count=1; + while(scanf("%d",&n)!=EOF) + { + printf("Case #%d:\n", count); + + memset(BIT,0,sizeof(BIT)); + memset(flag,false,sizeof(flag)); + + for(int i=1;i<=n;i++) + { + scanf("%lld",&a[i]); + update(i,a[i]); + root[i]=i; + } + + root[n+1]=n+1; + + int q; + scanf("%d",&q); + + while(q--) + { + int c,x,y; + scanf("%d%d%d",&c,&x,&y); + + if(x>y) + { + int temp=x; + x=y; + y=temp; + } + + if(c) + { + // printf("%lld\n", query(1,1,n,x,y)); + printf("%lld\n",query(y)-query(x-1)); + } + else + { + // update(1,1,n,x,y); + modify(x,y); + } + } + count++; + printf("\n"); + } +} \ No newline at end of file diff --git a/spoj/GSS4test b/spoj/GSS4test new file mode 100755 index 0000000000000000000000000000000000000000..cf72bd4279c081a2d845c6575c52356708b25e76 GIT binary patch literal 13136 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 literal 0 HcmV?d00001 diff --git a/spoj/GSS4test.cpp b/spoj/GSS4test.cpp new file mode 100644 index 0000000..ce5583e --- /dev/null +++ b/spoj/GSS4test.cpp @@ -0,0 +1,80 @@ +/** http://www.spoj.com/problems/GSS4/ */ +#include +#include +#include +#define MAX 100100 + +long long int tree[4*MAX]; +long long int a[MAX]; + +void build(int i, int l, int r) { + if (l == r) + tree[i] = a[l]; + else { + int mid = (l + r) / 2; + build(2*i, l, mid); + build(2*i+1, mid+1, r); + tree[i] = tree[2*i] + tree[2*i+1]; + } +} + +void update(int l, int r, int i, int cl, int cr) { + if (cl == cr) { + tree[i] = (long long int) floor(sqrt(tree[i])); + return; + } + else if (cl >= l && cr <= r) { + if (tree[i] <= cr - cl + 1) + return; + } + int mid = (cl + cr) / 2; + if (r <= mid) + update(l, r, 2*i, cl, mid); + else if(l > mid) + update(l, r, 2*i+1, mid+1, cr); + else { + update(l, r, 2*i, cl, mid); + update(l, r, 2*i+1, mid+1, cr); + } + tree[i] = tree[2*i] + tree[2*i+1]; +} + +long long int sum(int l, int r, int i, int cl, int cr) { + if (cl > r || cr < l || cr < cl || r < l) + return 0; + else if (cl >= l && cr <= r) + return tree[i]; + else { + int mid = (cl + cr) / 2; + return sum(l, r, 2*i, cl, mid) + sum(l, r, 2*i+1, mid+1, cr); + } +} + +int main(void) { + int n; + int c = 1; + while(scanf("%d", &n) != EOF) { + printf("Case #%d:\n", c++); + int i; + for (i = 0; i < n; i++) + scanf("%lld", a+i); + build(1, 0, n-1); + int m; + scanf("%d", &m); + while (m--) { + int t, x, y; + scanf("%d %d %d", &t, &x, &y); + if (x > y) { + int temp = x; + x = y; + y = temp; + } + if (t == 1) + printf("%lld\n", sum(x-1, y-1, 1, 0, n-1)); + else + update(x-1, y-1, 1, 0, n-1); + } + printf("\n"); + } + return 0; +} \ No newline at end of file diff --git a/spoj/HAYBALE b/spoj/HAYBALE new file mode 100755 index 0000000000000000000000000000000000000000..3716d8c7b9f4c7c664eea7531ddee8b8ad4f5498 GIT binary patch literal 20336 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 VfA_BV_F%|3h{{u$d@HGGc literal 0 HcmV?d00001 diff --git a/spoj/HAYBALE.cpp b/spoj/HAYBALE.cpp new file mode 100644 index 0000000..7771053 --- /dev/null +++ b/spoj/HAYBALE.cpp @@ -0,0 +1,57 @@ +//Using BIT + +#include +using namespace std; +#define MAXN 1000005 +long long n,k; +long long BIT[MAXN]; +long long arr[MAXN]; + +void update(int x,int val) +{ + for(;x<=n;x+= x&-x) + BIT[x]+=val; +} + +int query(int x) +{ + int sum=0; + for(;x>0;x-= x&-x) + sum+=BIT[x]; + return sum; + +} + +int main() +{ + scanf("%lld %lld",&n,&k); + + for(long long i=0;ihe^c?sOmQP7Ky)t!B5#?C(7v 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 M$nzebtGp)oe@in(!~g&Q literal 0 HcmV?d00001 diff --git a/spoj/HAYBALEtest.cpp b/spoj/HAYBALEtest.cpp new file mode 100644 index 0000000..9c53ed5 --- /dev/null +++ b/spoj/HAYBALEtest.cpp @@ -0,0 +1,47 @@ +#include +#include +#include +#include +using namespace std; + +int tree[1000005],n,tree2[1000004]; + +int read(int idx){ + int sum = 0; + while(idx > 0){ + sum += tree[idx]; + idx -= (idx & -idx); + } + return sum; +} + +void update(int idx, int val){ + while(idx <= n){ + tree[idx] += val; + idx += (idx & -idx); + } +} + +int main() +{ + int i,j,k,a,b; + scanf("%d %d",&n,&k); + memset(tree,0,sizeof(tree)); + for(i=0;i_a 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 w4nL-DPSuQp_Y_% +using namespace std; +#define ll long long +#define SIZE 100002 +vector > adj[SIZE]; +int n,m,src,dest; + +// int flag; + +void addedge(ll u, ll v, ll d) +{ + adj[u].push_back(make_pair(v,d)); + adj[v].push_back(make_pair(u,d)); +} + +void dijkstra() +{ + vector vis(n,false); + vector dist(n,1e9); + + dist[src]=0; + + priority_queue, vector >,greater > > s; + s.push(make_pair(0,src)); + + while(!s.empty()) + { + pair p=s.top(); + s.pop(); + + ll x=p.second; + + if(vis[x]) continue; + vis[x]=true; + + //if(x==dest) break; + + for(int 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 Ef1+80KL7v# literal 0 HcmV?d00001 diff --git a/spoj/HIGHWAYStest.cpp b/spoj/HIGHWAYStest.cpp new file mode 100644 index 0000000..ae96c0a --- /dev/null +++ b/spoj/HIGHWAYStest.cpp @@ -0,0 +1,80 @@ +#include +using namespace std; +#define ll long long +#define SIZE 100002 +#define INF 1000000000 +vector >adj[SIZE]; +int n,m,src,dest; +ll dist[SIZE]; + +void addedge(ll u,ll v,ll d) +{ + adj[u].push_back(make_pair(v,d)); + adj[v].push_back(make_pair(u,d)); +} + +void dijsktra() +{ + for(int i=0;i<=n;i++) + { + dist[i]=INF; + } + dist[src]=0; + priority_queue >q; + q.push(make_pair(src,0)); + + while(!q.empty()) + { + pair p=q.top(); + q.pop(); + + int x=p.first; + + for(int i=0;idist[x]+w) + { + dist[e]=dist[x]+w; + q.push(make_pair(e,dist[e])); + } + } + } + if(dist[dest]==INF) + { + printf("NONE\n"); + } + else + { + printf("%lld\n", dist[dest]); + } +} + + +int main() +{ + int t; + scanf("%d",&t); + + while(t--) + { + scanf("%d %d %d %d",&n,&m,&src,&dest); + + for(int i=0;i<=n;i++) + { + adj[i].clear(); + } + + for(ll i=0;i~5NcWD|Ga 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 +using namespace std; +#define SIZE 100002 +#define ll long long + +int n; +ll BIT1[SIZE]; +ll BIT2[SIZE]; + +void update1(int x,ll val) +{ + for(;x<=100001;x+=x&-x) + { + BIT1[x]+=val; + } +} + +void update2(int x,ll val) +{ + for(;x<=100001;x+=x&-x) + { + BIT2[x]+=val; + } +} + +ll query1(int x) +{ + ll sum=0; + for(;x>0;x-=x&-x) + { + sum+=BIT1[x]; + } + return sum; +} + +ll query2(int x) +{ + ll sum=0; + for(;x>0;x-=x&-x) + { + sum+=BIT2[x]; + } + return sum; +} + + + +int main() +{ + ll t; + scanf("%lld",&t); + + while(t--) + { + int type; + int c,p,q; + ll v; + memset(BIT1,0,sizeof(BIT1)); + memset(BIT2,0,sizeof(BIT2)); + + scanf("%d %d",&n,&c); + while(c--) + { + scanf("%d %d %d",&type,&p,&q); + if(type==0) + { + scanf("%lld",&v); + + update1(p,v); + update1(q+1,-v); + update2(p,(long long)v*(p-1)); + update2(q+1,-(long long)v*q); + } + else + { + ll ans = (query1(q)*q-query2(q)) - (query1(p-1)*(p-1)-query2(p-1)); + printf("%lld\n", ans); + } + } + + } + + return 0; +} \ No newline at end of file diff --git a/spoj/HORRIBLEseg b/spoj/HORRIBLEseg new file mode 100755 index 0000000000000000000000000000000000000000..ea4dbf25fb318f3d7e67395699447806fc8c75d3 GIT binary patch literal 13392 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 +using namespace std; +#define ll long long +#define SIZE 100005 + +struct trees +{ + ll sum; +}; + +ll lazy[SIZE<<3]; +trees tree[SIZE<<3]; + +void build(int node,int start,int end) +{ + if(start>end) + return; + if(start==end) + { + tree[node].sum=0; + return; + } + int mid=(start+end)>>1; + + build(2*node,start,mid); + build(2*node+1,mid+1,end); + + tree[node].sum=tree[2*node].sum+tree[2*node+1].sum; +} + +void update(int node,int start,int end,int l,int r,ll val) +{ + if(lazy[node]) + { + tree[node].sum+=(end-start+1)*lazy[node]; + if(startend || start>r || end>1; + update(2*node,start,mid,l,r,val); + update(2*node+1,mid+1,end,l,r,val); + + tree[node].sum=tree[2*node].sum+tree[2*node+1].sum; +} + +ll query(int node,int start,int end,int l,int r) +{ + if(lazy[node]) + { + tree[node].sum+=(end-start+1)*lazy[node]; + if(startend || start>r || end>1; + return query(2*node,start,mid,l,r)+query(2*node+1,mid+1,end,l,r); +} + +int main() +{ + int t; + scanf("%d",&t); + while(t--) + { + memset(lazy,0,sizeof(lazy)); + memset(tree,0,sizeof(tree)); + int n,m; + scanf("%d %d",&n,&m); + + build(1,1,n); + + while(m--) + { + int c,x,y; + ll val; + + scanf("%d",&c); + if(c) + { + scanf("%d %d", &x,&y); + printf("%lld\n",query(1,1,n,x,y)); + } + else + { + scanf("%d%d%lld",&x,&y,&val); + update(1,1,n,x,y,val); + } + } + } + return 0; +} \ No newline at end of file diff --git a/spoj/HORRIBLEsegtest b/spoj/HORRIBLEsegtest new file mode 100755 index 0000000000000000000000000000000000000000..63253efeea24edf7c67a2fe0065e0358c63a5356 GIT binary patch literal 13424 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 RM>+pp+hn)sa&@}>{|{qeR9yf7 literal 0 HcmV?d00001 diff --git a/spoj/HORRIBLEsegtest.cpp b/spoj/HORRIBLEsegtest.cpp new file mode 100644 index 0000000..1ed358a --- /dev/null +++ b/spoj/HORRIBLEsegtest.cpp @@ -0,0 +1,108 @@ +#include +#include +using namespace std; + +const int N=100005; +long long int lazy[4*N]; +long long int seg[4*N]; + +void build(int low,int high,int node) +{ + if(low>high) + return; + if(low == high) + { + seg[node]=0; + return; + } + int mid = low+high>>1; + build(low,mid,2*node+1); + build(mid+1,high,2*node+2); + seg[node]=seg[2*node+1]+seg[2*node+2]; +} + +void update(int low,int high,int lq,int hq,int node,long long int val) +{ + if(lazy[node]) + { + seg[node]+=(high-low+1)*lazy[node]; + if(high!=low) + { + lazy[2*node+1]+=lazy[node]; + lazy[2*node+2]+=lazy[node]; + } + lazy[node]=0; + } + if(low>hq || high>1; + update(low,mid,lq,hq,2*node+1,val); + update(mid+1,high,lq,hq,2*node+2,val); + seg[node]=seg[2*node+1]+seg[2*node+2]; +} + +long long int query(int low,int high,int lq,int hq,int node) +{ + if(lazy[node]) + { + seg[node]+=(high-low+1)*lazy[node]; + if(high!=low) + { + lazy[2*node+1]+=lazy[node]; + lazy[2*node+2]+=lazy[node]; + } + lazy[node]=0; + } + if(low>hq || high>1; + return query(low,mid,lq,hq,2*node+1)+query(mid+1,high,lq,hq,2*node+2); +} +int main(){ + int t; + scanf("%d",&t); + int n,q; + while(t--) + { + memset(seg,0,sizeof(seg)); + memset(lazy,0,sizeof(lazy)); + scanf("%d %d",&n,&q); + int type; + int x,y; + long long int val; + build(0,n-1,0); + while(q--) + { + scanf("%d",&type); + //printf("%dhh\n",type); + if(type) + { + scanf("%d %d",&x,&y); + printf("%lld\n",query(0,n-1,x-1,y-1,0)); + } + else + { + scanf("%d %d %lld",&x,&y,&val); + update(0,n-1,x-1,y-1,0,val); + } + } + + } + + return 0; + +} \ No newline at end of file diff --git a/spoj/HORRIBLEtest b/spoj/HORRIBLEtest new file mode 100755 index 0000000000000000000000000000000000000000..445735baee12f74ec3b4bb6d579d47825725b4b9 GIT binary patch literal 8912 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 +#include + +using namespace std; + +long long bit1[100002],bit2[100002]; + +void update(long long bit[], int idx, long long val){ + for(int x = idx;x <= 100001;x += x & -x) + bit[x] += val; +} + +long long query(long long bit[], int idx){ + long long ret = 0; + + for(int x = idx;x > 0;x -= x & -x) + ret += bit[x]; + + return ret; +} + +int main(){ + int T,N,Q; + + scanf("%d",&T); + + while(T--){ + scanf("%d %d",&N,&Q); + + memset(bit1,0,sizeof bit1); + memset(bit2,0,sizeof bit2); + + for(int i = 0,op,l,r,v;i < Q;++i){ + scanf("%d %d %d",&op,&l,&r); + + if(op == 0){ + scanf("%d",&v); + + update(bit1,l,v); update(bit1,r + 1,-v); + update(bit2,l,-(long long)v * (l - 1)); update(bit2,r + 1,(long long)v * r); + }else{ + printf("%lld\n",query(bit1,r) * r + query(bit2,r) - query(bit1,l - 1) * (l - 1) - query(bit2,l - 1)); + } + } + } + + return 0; +} \ No newline at end of file diff --git a/spoj/HOTELS b/spoj/HOTELS new file mode 100755 index 0000000000000000000000000000000000000000..6b4b1df9709eb8387ab7296115c0d97b21cd4260 GIT binary patch literal 9080 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 literal 0 HcmV?d00001 diff --git a/spoj/HOTELS#2.cpp b/spoj/HOTELS#2.cpp new file mode 100644 index 0000000..65dd8eb --- /dev/null +++ b/spoj/HOTELS#2.cpp @@ -0,0 +1,63 @@ +//using prefix sum + +/*error in case + + 7 28 + 24 2 1 23 2 1 1 +*/ +#include +using namespace std; +#define ll long long +#define SIZE 300005 + +int n; +ll m; + +ll a[SIZE]; +ll pre[SIZE]; + +int main() +{ + scanf("%d %lld",&n, &m); + + for(int i=0;im) //if values are bigger in prefix sum then we try to reach the closest value + { + ll s=lower_bound(pre,pre+n,pre[k]-m)-pre; + // printf("%\n"); + ans=pre[k]-pre[s]; + } + else //if value is found in prefix sum + { + // printf("here\n"); + ans=pre[k]; + } + + printf("%lld\n", ans); +} \ No newline at end of file diff --git a/spoj/HOTELS.cpp b/spoj/HOTELS.cpp new file mode 100644 index 0000000..8cbd37e --- /dev/null +++ b/spoj/HOTELS.cpp @@ -0,0 +1,48 @@ +//using modified kadane +#include +using namespace std; +#define ll long long +#define SIZE 300005 + +int n; +ll m; + +ll a[SIZE]; + +int main() +{ + scanf("%d %lld",&n, &m); + + for(int i=0;im) + { + // printf("here\n"); + while(sum>m) + { + sum-=a[i]; + i++; + } + + } + // printf("%lld\n", sum); + + if(max{@1B?E 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 HX)OOATMruf literal 0 HcmV?d00001 diff --git a/spoj/JUMPPY.cpp b/spoj/JUMPPY.cpp new file mode 100644 index 0000000..f86cf50 --- /dev/null +++ b/spoj/JUMPPY.cpp @@ -0,0 +1,20 @@ +#include +using namespace std; + +int main() +{ + int n; + scanf("%d",&n); + + char a[n][n]; + + for(int i=0;i>a[i][j]; + } + } + + +} \ No newline at end of file diff --git a/spoj/KAUSANDNIHA b/spoj/KAUSANDNIHA new file mode 100755 index 0000000000000000000000000000000000000000..abca0a16584226a2fd9d745cecf88e303674b0dd GIT binary patch literal 14056 zcmeHOe{fXSb-ueRAsO&WU||!mVQYgeCuNa9sG_dTuB3&xwg3f54ki{)tKAjavf5R5 z--5&pF^r7M&RUcvv7J+6+TmBrJ-+>2$CYr*6|uHEx~m8at!JvLm~M z?RW0G_v!7^uEQklf4ZZ6=brDLbMCo6-hJ=hcl4aEZKvI4V=~#<6O6c-yF47yuZ(5g zoE2CTyNh|4i#@=W04c}M!%K+jIZ5Y)X-O-EoCCBBzb3m5G}%2oBkBD*%p{c_5~cd) zlSgEA`r=BRm6X9tN~A}=W*;DqXiot>FZ{UX`PET#5$v=HU@S92EB!!wdTtHVrEsrPy4k)L;(gn714 z)K{usRtx_n70qRvqmkamhRxB?rf4LV8rn3})VQg!!JUk|xA1n8eUja^r;EEJ`_ToC ze6GQd<^Ywuv(63wa_0Nr{cc@zwr*A1(J!3tdxqp!;72y}c2zT%joApJRO@@QZP`r6ufSOW<#oz_*sL|M?Q~Zd`8Rk<`3k5&-IhsR_OjQpJ#A9kw3nVmE zW$Keh)P3PYk)#$*v_u2RWH`xGf9GyB6ix`Zb9YNL9t(E{dZS^zta! zJEDs>MPLEdh8z5`h}Oz+_0Z6eIv7qQWT@^8@VILb=wCzv}n>_q+R={ zJ)-@x`JJk-W1EV$^6KN!q%UIRhG=XK1%qmmhNhmWU9qE)SP0{hObvvoFet|i!xcQN z2Kx`IeSt_6gBTnNr~xfJ6wz2R7>M-&B6%^c1A$14?P_UJx4P@tt~P&ji@L?#VC1&A zx3QM}`@PM6wcfo|hxhM?a05*xePOa=6`^&6C|&JXUFf<5KYC7J$zZQwj>`MK{o&zd zw4!_hjFJs<7e#p;_?k%MZd#%2Fi$$EHIch$rCP36$K^?t$|!yB+lNt2IivNFFzwMV z;}KwI4+;6X^*toU*DwKbezmKI(+XULE1Y+kaJjZqL9GclKmY1XxOx3=GU0N~Bs(4x zE}vC|D<&KbHd4C@N5>gyzX@M%pp5mHaCD@R`c1ggKp7h};Z-Jl$b_5MuM;L*jsdAD zBkxrznevVIxtMZlLMzWY(5uSGmC8wzQDpPmRzf7du?E+w^&aGi?F?*;%NwS?VNv=_@%^qIDe6N8j4&U=l_a$8iJgQ^WP+%x;|IU`IX@N&VuKu z{(XP?^@B?KZDr)YX4*UbQxnzI9;QrPK37F#>UWoWShfO+vwc((fEudx1<*H?Qa(r-J-6grDd3yC#&H%5H3wwo8He7AJvTU>d4#&=5@Qz8@Rn`}%eCko_`BHTpIbMGcwqH5|QFH9842{~B-lEth}=llmU)Q^N8Yt58Qoa$r%G^6iRAThyse~{ zf5_(*rYFrbIYGtn`h&0ggV&5ABr{2Yjl6K5dNA{{fBd zk3Yc#=s>3u^ZQ_OJJBvV1CZs@q}D8Tn51ZBG%QVJj{?&dicEJlq-?#PPd9DD%?Fh9 zq)Bcs(n^lQFd4(qF7xg8QE&tE)C(~8(}dKu1M1a|g1Uk@&k>^MDZvfqY>x=Gy}?xkhEx$a5t7rak<(|K=~ zx3g_@W24iB#dLJj6QCXb^hf^mn{AK2!=HVZf9}Zs43#UV-q&39Ka}flTl(F$^hd3* zkgxeSWn|K(Y`>X$mmZ8??DjtE?e-q@s*`8u*Xs`^F`emIDjuEme)N>LtHZmeb&p^1 zy5cEqFr~TrBGItxp?bD4gg=+Ox;93mAx6(CW?SocjP|I+jKQsM5Jk&}K+m8XXFykA z=2WBgn{kh|gZ?LG+7Rfkp)bZj8$oYCP653D{sJi6;i*O^%yw)avkg_-)-JE8JZr0{ zCj5T-Z3K=5BVWs)H?!dl-s|=1*n{!kRPLb9ok})J3eD00V=0tJJ#OD zTU6noEs{fTm+mL|`p@XQzeXRFX)8U34Q0gP_`2Pw=RL>;aT`8C2Bn|F^L{Qz{U=er z%3R*Ams1;m9p$G{9;WhUXZ7#do1LrAIDAgmXj!wf_Qi6=S@*&c#o07cvD@iMIGeoA zI~+3A8DsrCn!40J~I$?97T<(8pFGcCY+xa-rF}sHdKg%b2 zy39j_pQjU@uzPUT_nAaDi_L~St6ohY65s3SS$=iMJT~W)7w{rcCIKcSG##DwCt3zpYQ|bc~oC#ZET_c zw7%LgE-uSDPU|e;Jr91<^ES%uES!f`crdu|l(f#P6y*8&BROnJFLK<;=xZJ& z`8>M^c2=T4WjvQW6a53oySQZGh2lAi;V%PU$rj%4bb3wpBg;J85I@^Q?t2{PP{C!c z1b!bJeh_xfh;f%~tOqXhWeKMy2yB~0lvb%hSBFwb9$I?+;{ZNiIS|hR>;#w19RF2ocftQ(^3laD`P&63&uoF z3i%(2`*cKSwF}6f{Tm(xJIIoho7f6^=U@eeb43XX=!8@b(sYZUz%tQcLyq zxe+3xKH0KQZS!|@A~I<{07=yb)F6c*Av8%1#nnU6cyA!8hO~GhsRmL*EEpdcjE1#v z$o(7Jwl@?PQu`vYh#E*F0>f%JrX_}1Um`FNRzsLAoB?1Q+(b-UC|*evBT$LLlc(e3o*wK)10^QloyOi#2%E*< z1KWbpa3FzkQ+tz1S@|6Y;+2l(v(!VDO+jq)eS$j{wNY%`kVWN=ome=(LI`POYMA;H z4OklORnL9KbgFT&U3BBY9A{DV%6fi2v65(io6hv+?sxdboa5u8< zLvgT(0mPLSHweXfbKT*7v7GgXU_^4Tj#$I+P%u2Gsb~l05jUoX;E0M=1`asL&r^j?ienDJgE_mLC}K*{<>PqOCp5Ewc$5aPyu zvr_;rvoP{_JQbvRaAtkEFV%$ph63q@`mHGc2xknk{xQ3UYm5n?mUHvxER}+nWDhdS z@RRxzb`Ll@f8m5(6Ah+7H_A$VdH(SU~81;#8*Vxxz6N2(Q4I(^=Zj~%cBWKo^`~MlC zKVwMhnQFmH`c;d*JSUhI2VK%%X~xRGV$qlTkr|=?plq0>UTN=-E&B4@p+-0;%t-MC z_s^dTeK~$E@xJd8`r8amJ!9>^zqIJf|HqL3r}6AB&>y$x%kz#4qW-_LOn7VmUAO4V za}iCvY|D8j-LRNrKSY5OKbqT=x#5N&df)slrd{%X5~w2XqOmzgGSO zh>=fH-#Cw1cW3%@5Thv~_2s!urO=-d4VKeL)-T&N23>Rg@_c7*{ioM2?NFemS)aLj zbVZj=PV2s$b@Kvod2N%Pk^6pGCiTp`y!RwV^oC34_KOD7aM1tC$o9*5 UP4{=P`fDH6_5a9n!&>YAU%fNt4FCWD literal 0 HcmV?d00001 diff --git a/spoj/KAUSANDNIHA Input file #1 b/spoj/KAUSANDNIHA Input file #1 new file mode 100644 index 0000000..090f9c9 --- /dev/null +++ b/spoj/KAUSANDNIHA Input file #1 @@ -0,0 +1,5019 @@ +10 +85 87 +78 1 794 +21 72 493 +80 37 363 +83 21 60 +64 57 541 +82 58 737 +2 9 568 +40 83 531 +43 39 68 +46 35 803 +28 69 70 +68 4 457 +22 83 230 +44 37 920 +20 58 199 +65 11 371 +54 12 92 +56 52 874 +18 51 997 +57 11 926 +5 38 337 +36 62 730 +54 83 125 +66 83 546 +55 18 435 +15 39 751 +33 49 277 +59 19 585 +39 37 755 +15 8 61 +67 54 740 +18 47 587 +15 16 796 +51 80 379 +38 7 98 +83 63 493 +53 52 302 +76 67 442 +66 20 445 +20 76 730 +27 58 98 +72 32 676 +50 3 568 +67 53 354 +82 6 307 +29 45 625 +14 12 733 +5 44 20 +56 24 709 +16 1 150 +67 69 619 +1 12 452 +67 61 380 +19 85 229 +7 81 194 +1 25 765 +15 80 988 +37 84 492 +83 11 860 +22 68 552 +78 49 276 +63 50 122 +79 31 30 +13 6 794 +84 54 144 +32 54 530 +67 25 444 +69 19 539 +72 16 905 +14 79 689 +40 28 918 +7 5 744 +71 84 491 +25 53 726 +20 51 506 +10 40 787 +25 63 543 +75 3 508 +81 75 349 +12 3 829 +10 84 747 +14 6 423 +67 76 606 +22 57 731 +24 76 321 +37 85 627 +18 66 709 +417 +13 54 +45 8 +43 40 +61 2 +28 70 +85 1 +84 47 +64 22 +37 81 +44 50 +66 24 +40 17 +60 82 +5 34 +19 14 +56 31 +67 57 +80 66 +11 55 +67 38 +82 23 +81 37 +70 59 +58 63 +54 58 +70 35 +82 66 +8 13 +62 12 +4 38 +67 16 +25 5 +72 20 +70 82 +31 8 +76 69 +73 71 +20 14 +1 35 +33 55 +7 17 +46 45 +83 53 +58 16 +21 61 +53 45 +76 78 +49 19 +54 76 +15 41 +40 47 +25 27 +33 1 +40 75 +35 30 +44 42 +46 46 +1 43 +55 15 +59 76 +32 68 +35 64 +17 40 +82 70 +30 53 +68 27 +15 7 +53 4 +49 50 +78 84 +79 79 +82 39 +39 39 +39 9 +54 54 +41 85 +78 32 +64 10 +71 17 +79 58 +70 61 +84 84 +24 8 +44 73 +57 36 +28 7 +71 24 +3 25 +62 41 +75 72 +51 30 +29 43 +61 49 +52 3 +65 3 +60 49 +20 58 +4 44 +66 47 +73 79 +40 57 +1 25 +80 3 +6 13 +85 80 +85 50 +66 70 +49 41 +33 16 +44 12 +60 60 +18 79 +33 21 +79 55 +25 66 +48 21 +37 5 +2 73 +7 8 +1 48 +44 42 +12 25 +26 61 +22 58 +33 65 +26 7 +40 43 +85 29 +21 79 +83 2 +16 2 +22 10 +7 23 +39 55 +72 81 +18 31 +37 71 +12 19 +3 33 +33 77 +55 16 +83 51 +58 40 +36 35 +75 75 +36 47 +76 14 +13 39 +79 52 +51 65 +47 68 +52 41 +10 63 +16 55 +53 49 +46 64 +64 44 +29 78 +40 64 +28 29 +53 20 +32 85 +76 45 +39 69 +11 4 +5 14 +28 57 +54 79 +76 70 +48 85 +75 9 +63 10 +9 48 +2 48 +68 71 +33 77 +48 21 +77 38 +65 72 +63 32 +32 67 +3 16 +80 56 +9 71 +82 57 +27 28 +22 5 +37 30 +9 81 +34 77 +66 23 +68 70 +43 16 +22 65 +2 84 +53 75 +23 55 +5 17 +68 56 +2 21 +69 71 +49 5 +75 42 +76 40 +37 66 +31 60 +45 14 +44 44 +71 23 +23 73 +63 76 +19 85 +2 24 +17 69 +79 60 +5 19 +45 53 +23 76 +9 55 +31 3 +35 18 +62 36 +73 62 +79 59 +84 59 +46 62 +6 64 +18 7 +44 76 +76 79 +51 80 +12 52 +4 76 +85 54 +45 72 +56 36 +4 74 +71 77 +51 65 +50 6 +38 52 +24 43 +72 42 +6 31 +32 81 +66 39 +32 78 +48 77 +25 47 +46 70 +33 58 +20 36 +4 48 +69 11 +69 33 +16 21 +84 40 +20 28 +38 25 +58 26 +63 80 +65 9 +29 27 +1 54 +30 3 +38 19 +17 14 +54 20 +18 38 +30 1 +27 3 +21 68 +42 82 +10 79 +22 24 +19 84 +18 40 +49 47 +23 6 +15 9 +50 9 +27 67 +64 81 +43 82 +75 30 +82 16 +32 60 +40 30 +56 49 +65 34 +72 40 +74 5 +37 38 +8 59 +43 22 +68 8 +72 51 +31 50 +46 30 +46 77 +59 43 +50 47 +17 4 +76 29 +53 12 +63 81 +52 51 +85 3 +3 7 +18 3 +70 42 +52 56 +8 39 +21 10 +68 23 +44 42 +65 8 +45 38 +53 78 +67 62 +4 1 +58 12 +51 57 +56 11 +21 74 +55 47 +72 21 +18 36 +59 80 +46 41 +17 46 +39 39 +53 84 +33 62 +76 56 +39 36 +56 11 +48 64 +24 18 +74 1 +48 43 +48 77 +20 22 +27 35 +16 29 +75 74 +74 71 +69 83 +26 17 +60 58 +72 13 +8 85 +23 12 +63 3 +72 51 +4 34 +50 51 +67 26 +72 9 +60 44 +79 49 +74 68 +76 58 +65 16 +31 81 +73 59 +8 38 +58 72 +49 35 +75 35 +42 35 +26 48 +85 7 +73 28 +57 47 +28 51 +53 58 +75 43 +30 54 +16 17 +7 45 +76 14 +82 48 +43 3 +40 74 +37 81 +23 62 +1 22 +26 73 +6 82 +35 33 +47 44 +47 78 +1 77 +4 58 +50 10 +18 40 +65 56 +45 22 +58 84 +10 52 +36 32 +70 36 +10 10 +66 15 +7 57 +4 10 +15 51 +3 57 +84 6 +30 5 +57 4 +45 36 +59 46 +58 74 +44 24 +40 36 +57 94 +47 9 961 +22 8 287 +55 8 678 +29 25 182 +45 48 324 +2 54 955 +49 8 43 +51 44 920 +57 8 470 +45 56 977 +17 45 134 +9 25 957 +14 22 667 +36 9 913 +48 54 903 +57 14 3 +21 6 719 +34 15 378 +50 14 574 +42 17 126 +39 49 497 +4 1 154 +33 30 981 +13 8 949 +17 15 30 +27 14 161 +18 50 720 +31 27 903 +47 35 727 +12 35 141 +33 17 939 +17 36 432 +25 12 906 +13 24 392 +10 56 422 +19 25 672 +1 2 96 +44 32 89 +4 37 570 +49 48 711 +54 40 434 +9 56 280 +21 39 500 +21 51 465 +13 20 87 +35 54 916 +13 14 12 +57 16 388 +12 19 774 +18 10 743 +2 22 125 +17 46 64 +11 9 713 +32 30 405 +19 1 735 +20 36 436 +5 7 670 +6 7 803 +38 34 90 +49 51 961 +9 11 558 +9 44 817 +22 54 523 +17 45 580 +37 22 379 +19 1 46 +54 5 900 +4 26 387 +26 6 949 +25 54 507 +50 21 418 +39 29 821 +16 10 995 +34 42 438 +24 21 318 +15 39 18 +15 51 157 +6 14 746 +3 39 172 +48 23 560 +30 15 653 +39 53 926 +33 27 92 +40 4 567 +34 43 51 +50 57 334 +8 31 500 +44 36 569 +47 54 343 +15 45 264 +35 33 940 +35 30 632 +7 6 805 +3 45 684 +139 +22 39 +57 14 +55 14 +21 28 +5 23 +6 25 +13 19 +42 27 +6 25 +20 54 +21 14 +27 29 +20 32 +22 38 +35 18 +37 56 +15 53 +28 12 +9 8 +39 29 +30 4 +53 42 +22 37 +27 43 +4 6 +39 25 +19 24 +12 54 +14 33 +34 49 +9 30 +6 23 +25 50 +51 49 +57 32 +20 29 +51 15 +30 31 +10 15 +32 30 +20 30 +13 38 +53 24 +34 10 +15 27 +17 23 +15 22 +4 55 +14 54 +46 29 +45 8 +1 54 +38 46 +28 6 +3 2 +35 23 +31 47 +19 43 +29 53 +52 43 +38 11 +24 52 +48 28 +49 21 +24 37 +49 27 +3 8 +24 56 +53 51 +20 15 +11 55 +37 1 +3 55 +43 32 +9 53 +17 46 +22 57 +40 12 +27 47 +48 9 +42 56 +52 44 +6 18 +1 18 +27 21 +32 37 +34 11 +53 52 +24 38 +26 49 +49 2 +37 13 +1 36 +41 43 +41 31 +10 26 +29 4 +12 51 +21 29 +11 6 +8 1 +2 57 +27 54 +51 50 +51 20 +41 42 +37 37 +55 53 +31 38 +38 14 +27 6 +39 56 +10 10 +8 46 +54 34 +52 4 +34 53 +3 3 +8 12 +11 1 +47 52 +43 26 +47 40 +21 36 +20 17 +49 46 +39 47 +3 7 +15 26 +52 11 +2 5 +14 35 +16 32 +37 24 +2 48 +24 49 +1 9 +17 6 +7 54 +83 14 +29 31 978 +59 44 465 +66 18 108 +46 17 741 +47 34 588 +10 56 794 +15 50 621 +38 8 372 +11 19 535 +82 70 568 +80 19 68 +19 77 434 +9 63 133 +4 25 524 +691 +74 59 +44 83 +34 10 +17 3 +44 55 +10 78 +68 29 +45 69 +18 38 +65 39 +62 3 +33 50 +15 12 +61 21 +39 2 +12 29 +63 55 +29 14 +65 45 +19 28 +19 29 +22 3 +60 66 +72 77 +24 56 +33 2 +62 68 +54 79 +82 31 +16 37 +36 28 +65 15 +2 13 +31 66 +61 50 +13 79 +81 38 +2 57 +23 76 +53 46 +51 5 +48 29 +75 21 +27 73 +55 46 +29 10 +76 14 +27 77 +26 58 +63 3 +27 75 +2 24 +29 3 +83 52 +78 55 +14 45 +60 64 +77 51 +5 23 +44 59 +68 72 +71 60 +5 14 +54 31 +74 36 +36 17 +27 37 +43 56 +42 45 +27 36 +17 40 +1 76 +24 80 +46 28 +19 6 +6 7 +81 76 +69 2 +6 39 +35 80 +77 74 +16 21 +27 59 +79 69 +20 22 +24 39 +64 27 +31 4 +23 80 +34 45 +2 39 +51 2 +34 36 +7 40 +78 44 +39 71 +34 57 +11 61 +35 6 +49 58 +27 72 +13 8 +19 47 +14 41 +43 48 +5 47 +3 58 +49 37 +11 58 +79 8 +18 37 +81 55 +10 9 +35 48 +14 83 +22 44 +74 34 +51 12 +80 64 +53 39 +28 60 +3 34 +35 54 +73 48 +31 68 +55 51 +24 55 +22 36 +63 56 +83 80 +58 21 +40 52 +55 7 +63 54 +73 35 +10 21 +12 15 +54 49 +71 43 +13 18 +30 67 +68 56 +38 10 +8 21 +68 8 +17 46 +28 56 +17 2 +65 82 +56 54 +34 68 +77 48 +82 47 +16 69 +9 28 +6 41 +14 73 +13 54 +2 21 +74 70 +31 10 +32 58 +65 48 +60 49 +46 35 +20 82 +19 16 +49 17 +63 64 +5 74 +8 10 +35 24 +2 47 +78 4 +70 68 +76 17 +78 24 +78 62 +74 57 +28 36 +8 50 +38 26 +65 6 +45 47 +70 49 +38 80 +61 75 +21 62 +38 15 +68 28 +2 60 +47 79 +3 41 +61 76 +14 5 +32 21 +57 72 +49 41 +77 10 +5 63 +58 45 +63 38 +36 83 +20 76 +17 4 +23 18 +67 70 +17 72 +30 77 +65 44 +1 16 +67 57 +4 36 +14 83 +45 21 +63 23 +65 45 +60 20 +44 79 +16 60 +3 38 +77 72 +24 10 +60 54 +6 41 +17 6 +59 3 +65 65 +38 82 +65 3 +19 47 +25 4 +8 4 +26 51 +83 41 +30 5 +79 26 +76 22 +36 52 +78 44 +13 11 +50 71 +17 31 +56 54 +29 37 +59 51 +83 83 +57 7 +4 82 +60 6 +40 6 +13 38 +31 5 +59 69 +59 54 +30 71 +67 82 +62 83 +29 37 +57 61 +73 32 +31 75 +35 4 +81 41 +5 60 +49 44 +65 61 +81 15 +65 60 +4 43 +33 33 +34 16 +31 15 +19 62 +51 75 +42 40 +26 75 +31 63 +78 31 +20 83 +7 68 +46 74 +48 47 +8 32 +26 11 +75 58 +46 25 +73 79 +39 8 +58 6 +2 19 +48 31 +11 81 +10 8 +28 33 +10 37 +20 56 +27 68 +22 34 +19 47 +48 10 +21 10 +37 13 +6 78 +24 66 +3 25 +4 50 +58 14 +47 71 +25 77 +23 34 +30 42 +9 59 +29 30 +10 48 +79 60 +60 16 +69 14 +32 77 +11 55 +62 14 +82 66 +66 57 +82 33 +44 23 +26 66 +60 59 +27 68 +34 56 +18 46 +23 16 +22 2 +35 11 +15 66 +4 29 +37 66 +42 35 +51 27 +8 49 +59 54 +75 5 +39 51 +63 66 +38 16 +41 58 +62 66 +74 3 +67 25 +13 2 +7 17 +30 43 +2 74 +80 52 +17 5 +20 76 +61 11 +83 17 +64 65 +2 19 +80 42 +79 61 +27 69 +64 10 +13 76 +11 19 +12 43 +64 16 +33 61 +70 50 +68 7 +45 48 +17 47 +64 81 +28 68 +19 27 +29 14 +5 55 +83 71 +68 15 +66 78 +34 81 +41 17 +13 73 +80 83 +42 67 +6 6 +32 25 +55 15 +25 82 +83 43 +29 31 +60 33 +3 62 +23 70 +76 5 +67 26 +5 24 +46 18 +17 45 +20 61 +29 28 +70 63 +52 41 +77 80 +40 79 +39 71 +27 15 +20 32 +76 45 +18 69 +52 4 +14 57 +31 62 +74 47 +24 13 +27 55 +40 13 +34 11 +54 30 +7 13 +29 49 +83 58 +66 22 +6 62 +69 26 +47 37 +32 63 +10 62 +45 3 +28 68 +15 55 +39 57 +67 75 +68 40 +21 77 +55 49 +42 57 +26 25 +81 31 +6 66 +59 55 +20 8 +34 29 +72 81 +32 17 +65 49 +71 23 +23 57 +17 10 +17 38 +3 71 +6 48 +45 32 +75 45 +65 80 +28 44 +51 47 +54 4 +78 42 +2 26 +58 69 +78 48 +12 17 +22 28 +26 38 +68 31 +28 77 +81 75 +28 72 +37 12 +68 64 +55 38 +30 28 +42 24 +70 46 +50 47 +31 44 +12 45 +63 36 +73 8 +73 60 +41 20 +53 39 +12 80 +27 51 +9 15 +31 66 +55 60 +11 13 +83 83 +61 52 +46 12 +15 57 +56 80 +12 48 +4 1 +25 48 +24 77 +3 38 +77 29 +5 5 +46 38 +70 18 +14 80 +33 16 +82 11 +71 45 +22 5 +21 77 +5 33 +42 11 +36 69 +58 59 +62 60 +13 58 +9 20 +62 54 +57 49 +71 73 +48 24 +6 47 +34 79 +11 55 +3 31 +51 7 +63 12 +18 19 +80 75 +80 62 +52 10 +36 63 +29 15 +33 6 +66 24 +78 33 +47 3 +82 80 +81 9 +54 1 +43 24 +10 25 +36 27 +43 32 +22 40 +13 73 +52 49 +52 83 +66 4 +5 51 +27 83 +3 76 +2 2 +75 3 +13 45 +6 55 +72 15 +80 24 +42 39 +58 66 +81 71 +58 49 +39 29 +49 24 +32 56 +77 62 +55 79 +54 60 +80 49 +62 10 +13 67 +67 1 +81 63 +24 42 +22 82 +24 19 +72 81 +71 30 +26 39 +53 61 +11 49 +39 66 +44 12 +42 44 +60 20 +56 73 +6 39 +73 3 +19 17 +48 43 +18 71 +61 6 +72 51 +35 17 +6 7 +77 17 +55 32 +2 18 +47 46 +61 23 +65 33 +15 73 +75 5 +75 10 +21 42 +55 38 +33 35 +46 21 +3 83 +37 8 +9 31 +27 66 +65 28 +83 28 +73 61 +54 57 +13 68 +46 4 +72 41 +16 12 +82 70 +52 34 +25 17 +54 27 +19 11 +34 27 +44 64 +9 25 +8 12 +56 81 +75 26 +54 4 +13 20 +11 5 +60 29 +16 61 +19 71 +12 43 +4 68 +69 26 +78 22 +52 41 +2 64 +69 10 +75 41 +10 66 +69 66 +72 81 +5 2 +2 67 +31 21 +45 49 +8 59 +8 14 +46 79 +42 44 +17 11 +1 22 +77 69 +34 71 +29 43 +53 17 +28 44 +15 33 +46 19 +16 76 +39 63 +44 49 +41 51 +66 4 +46 24 +47 65 +37 47 +6 30 +36 39 +17 67 +1 72 +1 32 +33 15 +64 81 +33 82 +76 75 +62 36 +43 19 +3 25 +22 51 +52 71 +35 5 +38 41 +38 73 +82 57 +56 3 +18 11 +16 9 328 +5 15 801 +9 7 775 +13 11 832 +12 10 480 +12 10 20 +8 7 747 +13 8 970 +4 3 529 +18 2 197 +13 17 167 +130 +1 15 +4 9 +3 14 +2 11 +14 13 +2 9 +4 9 +18 9 +15 6 +3 5 +2 4 +5 16 +2 4 +8 14 +2 6 +1 2 +18 3 +8 2 +16 9 +12 9 +1 11 +17 3 +17 14 +9 11 +2 12 +13 1 +13 17 +16 14 +2 3 +9 1 +8 8 +18 7 +8 6 +6 3 +12 15 +12 11 +5 8 +13 1 +2 3 +11 1 +12 6 +17 7 +2 14 +2 2 +14 9 +2 3 +16 18 +7 5 +5 10 +5 16 +6 16 +6 8 +4 18 +8 3 +1 16 +1 10 +3 17 +16 3 +12 16 +4 7 +6 3 +7 1 +2 11 +3 4 +2 7 +18 5 +3 5 +12 6 +5 17 +6 3 +14 6 +12 15 +4 8 +17 13 +5 2 +17 10 +4 3 +10 4 +13 12 +7 14 +18 6 +16 18 +11 7 +3 13 +5 8 +15 16 +11 6 +12 14 +13 8 +6 17 +9 4 +6 11 +6 13 +14 16 +4 18 +9 4 +6 6 +1 14 +10 4 +8 14 +11 2 +10 4 +7 1 +15 18 +9 3 +16 17 +4 2 +7 10 +14 2 +5 18 +2 14 +1 5 +17 1 +18 9 +4 5 +2 13 +6 11 +16 10 +12 10 +9 2 +12 5 +16 16 +6 5 +5 1 +4 9 +16 3 +2 16 +5 1 +15 4 +9 18 +63 78 +3 29 17 +34 30 438 +53 20 967 +8 15 22 +5 18 670 +52 44 752 +32 5 606 +60 28 831 +51 15 430 +5 41 444 +4 42 462 +22 10 902 +60 62 871 +61 5 519 +39 7 425 +31 59 621 +24 27 848 +17 21 901 +8 7 826 +44 9 951 +6 12 879 +59 33 305 +14 27 652 +51 24 348 +35 61 744 +39 26 959 +21 47 951 +6 63 970 +19 6 513 +45 49 848 +46 54 350 +23 49 737 +9 60 152 +57 47 855 +44 19 221 +38 55 271 +26 11 108 +37 16 690 +7 32 494 +44 11 654 +26 54 909 +18 13 424 +43 20 102 +31 11 163 +40 55 127 +45 27 770 +13 52 711 +26 25 502 +36 29 43 +53 7 513 +51 31 212 +41 46 20 +12 25 592 +43 53 931 +58 30 737 +23 11 753 +43 21 290 +8 44 297 +51 16 97 +59 3 200 +12 53 159 +18 28 323 +35 40 75 +8 19 272 +55 11 767 +25 34 781 +24 13 936 +9 21 341 +16 6 387 +50 62 217 +26 10 186 +29 28 852 +15 60 341 +24 5 754 +22 57 255 +49 18 673 +19 39 73 +9 47 222 +390 +63 6 +26 47 +4 13 +9 12 +48 36 +37 50 +50 33 +26 10 +35 19 +31 28 +20 14 +44 54 +32 19 +35 39 +3 37 +16 63 +40 41 +44 41 +51 51 +52 36 +23 25 +20 7 +56 44 +17 27 +60 45 +53 16 +57 33 +4 25 +51 38 +61 51 +9 14 +48 48 +52 27 +26 38 +14 12 +10 34 +35 27 +40 27 +7 54 +53 3 +34 42 +16 27 +9 19 +49 58 +55 47 +45 63 +60 28 +46 46 +54 6 +20 2 +15 27 +35 49 +54 11 +12 58 +63 63 +61 33 +39 11 +59 46 +28 44 +40 19 +27 19 +16 21 +44 59 +4 34 +1 21 +35 14 +48 4 +62 38 +15 9 +32 14 +6 27 +46 42 +38 39 +24 2 +19 63 +18 46 +17 33 +1 60 +27 4 +29 25 +25 61 +38 7 +2 37 +44 14 +43 10 +25 48 +35 5 +26 7 +43 50 +6 61 +47 23 +41 63 +53 42 +60 16 +43 25 +39 2 +22 13 +8 21 +49 51 +34 28 +59 58 +10 28 +62 36 +34 41 +20 39 +37 3 +59 14 +1 46 +53 60 +60 33 +19 35 +34 38 +47 42 +59 31 +27 29 +56 20 +22 3 +47 20 +36 17 +59 55 +53 32 +57 46 +43 57 +27 33 +51 23 +2 4 +55 33 +42 36 +11 35 +3 36 +61 57 +55 19 +59 39 +37 29 +53 30 +20 41 +61 11 +21 38 +3 47 +7 53 +4 6 +55 56 +37 31 +29 47 +2 29 +17 60 +22 9 +14 15 +45 48 +43 32 +14 60 +9 9 +8 28 +46 10 +9 51 +60 13 +54 49 +3 27 +16 31 +9 15 +60 25 +10 16 +31 23 +31 12 +7 8 +44 20 +5 50 +28 10 +14 8 +19 23 +58 13 +33 47 +62 35 +10 12 +3 16 +25 60 +41 34 +12 6 +56 40 +18 60 +48 61 +16 50 +47 41 +59 61 +48 12 +18 41 +22 50 +24 18 +21 31 +30 21 +45 52 +17 20 +22 27 +25 14 +3 42 +8 48 +37 23 +34 21 +61 27 +16 43 +38 31 +20 58 +17 41 +12 35 +7 39 +56 51 +27 7 +5 46 +33 29 +57 34 +8 1 +18 44 +21 50 +62 18 +13 12 +61 49 +42 15 +41 56 +54 52 +28 58 +26 18 +43 50 +24 47 +33 55 +12 26 +25 17 +27 40 +59 47 +26 55 +63 37 +4 60 +20 43 +9 60 +36 62 +48 63 +54 8 +17 33 +58 38 +16 25 +27 26 +50 49 +42 11 +26 35 +58 49 +27 55 +20 28 +49 39 +7 57 +35 42 +54 18 +41 44 +25 55 +14 17 +28 29 +41 54 +54 28 +38 31 +36 63 +2 28 +46 26 +19 3 +53 4 +39 60 +61 11 +38 49 +28 14 +29 50 +3 42 +4 28 +6 44 +19 57 +6 56 +24 42 +53 24 +6 33 +49 25 +33 39 +28 9 +33 23 +17 7 +8 44 +18 37 +30 19 +13 31 +46 16 +12 62 +10 15 +54 31 +56 41 +52 60 +9 36 +21 41 +11 46 +47 41 +4 63 +45 11 +43 63 +45 8 +16 56 +38 61 +8 47 +60 15 +62 48 +44 52 +24 30 +48 32 +2 3 +7 10 +47 54 +50 50 +53 32 +60 31 +29 40 +36 44 +32 8 +41 37 +55 35 +50 51 +20 30 +39 41 +59 22 +9 59 +24 13 +5 7 +3 55 +56 54 +23 51 +21 51 +27 54 +29 56 +61 6 +29 50 +39 15 +37 56 +42 11 +33 36 +32 39 +31 53 +51 33 +60 54 +24 50 +42 44 +35 60 +29 59 +50 57 +51 47 +61 15 +34 36 +27 5 +28 4 +15 60 +39 46 +35 4 +34 20 +36 30 +8 58 +14 49 +38 47 +45 4 +42 29 +58 28 +11 55 +40 42 +27 1 +46 52 +4 59 +48 40 +39 17 +43 9 +35 14 +36 42 +8 50 +28 43 +33 7 +44 9 +34 39 +36 44 +28 10 +22 53 +11 2 +41 14 +60 24 +52 36 +38 29 +44 9 +42 17 +51 47 +1 13 +27 31 +17 7 +57 72 +57 20 869 +49 29 585 +39 18 320 +1 24 389 +15 12 208 +51 11 495 +47 5 838 +26 25 661 +29 39 59 +41 13 614 +9 28 247 +17 35 47 +27 16 154 +34 33 445 +50 6 568 +47 56 10 +47 46 620 +34 30 224 +57 18 607 +18 1 759 +29 25 542 +42 41 819 +43 11 729 +5 44 674 +5 52 566 +33 42 254 +14 47 625 +15 24 434 +40 23 732 +6 57 850 +41 28 511 +22 28 937 +21 14 359 +51 18 448 +16 22 594 +27 54 355 +52 26 225 +25 40 746 +27 39 226 +5 44 722 +24 44 552 +26 8 610 +28 44 295 +40 53 112 +55 27 154 +7 53 43 +32 7 790 +46 47 308 +27 32 878 +46 36 754 +23 18 693 +27 43 941 +17 14 316 +5 12 546 +25 9 306 +26 31 511 +40 5 416 +22 10 701 +2 36 95 +21 24 33 +42 46 12 +8 31 895 +54 47 321 +45 10 296 +31 51 621 +44 35 887 +12 17 450 +1 54 885 +37 15 938 +5 35 186 +9 35 350 +45 1 981 +382 +13 33 +45 57 +43 51 +30 36 +24 33 +29 27 +44 5 +51 3 +1 43 +55 15 +13 3 +8 6 +27 1 +3 14 +1 46 +24 13 +22 27 +28 23 +36 1 +17 2 +33 45 +45 35 +49 54 +37 9 +40 35 +39 52 +53 6 +1 38 +6 19 +10 23 +24 33 +51 45 +19 22 +26 54 +38 42 +56 29 +45 43 +6 37 +39 1 +4 37 +51 42 +32 5 +6 48 +1 12 +25 11 +50 48 +2 43 +35 20 +7 3 +17 3 +3 31 +31 48 +32 52 +43 29 +12 46 +9 5 +46 56 +26 52 +46 26 +22 13 +52 14 +20 54 +56 54 +32 22 +16 7 +24 34 +37 55 +24 27 +49 25 +56 3 +29 23 +24 18 +37 8 +28 41 +49 49 +53 44 +5 31 +56 19 +28 30 +40 2 +37 7 +51 32 +4 34 +2 11 +1 16 +30 30 +54 12 +6 33 +35 33 +16 26 +24 27 +28 44 +1 26 +5 44 +56 45 +4 35 +10 54 +9 29 +30 26 +39 47 +41 27 +19 53 +54 24 +28 31 +15 43 +57 38 +13 27 +40 29 +53 44 +15 10 +31 18 +3 40 +14 27 +27 3 +53 9 +49 52 +51 10 +48 48 +49 18 +21 6 +20 36 +2 48 +6 41 +19 17 +43 33 +42 33 +9 44 +31 38 +13 1 +40 24 +9 31 +19 18 +56 25 +8 6 +42 29 +27 20 +23 28 +10 28 +27 28 +3 13 +19 44 +45 27 +30 34 +8 2 +34 47 +25 1 +37 43 +19 51 +10 26 +57 11 +13 26 +30 36 +13 56 +22 39 +26 41 +10 4 +27 13 +30 16 +47 53 +17 23 +2 41 +24 38 +43 42 +31 11 +26 46 +37 55 +15 26 +49 27 +24 13 +24 8 +53 50 +11 39 +5 57 +54 10 +52 29 +33 53 +28 15 +49 13 +15 39 +40 40 +27 19 +53 57 +3 44 +42 26 +57 9 +34 11 +17 3 +49 21 +2 4 +47 13 +32 38 +24 3 +52 32 +31 9 +13 13 +7 55 +48 19 +55 50 +5 39 +19 4 +6 11 +31 22 +13 22 +2 31 +42 48 +43 16 +28 9 +18 38 +40 49 +5 11 +20 27 +9 10 +45 22 +19 50 +19 37 +12 41 +6 42 +5 34 +23 22 +7 7 +12 49 +38 55 +17 15 +35 15 +22 39 +26 41 +9 50 +10 53 +30 28 +45 48 +23 16 +31 28 +57 52 +20 38 +16 27 +3 44 +34 41 +41 9 +55 19 +24 19 +16 8 +18 40 +57 43 +36 45 +13 39 +35 51 +54 25 +37 13 +19 57 +9 50 +26 12 +36 18 +11 36 +27 8 +13 50 +42 28 +16 18 +11 15 +4 5 +18 32 +2 52 +26 56 +35 21 +27 12 +20 35 +21 4 +5 56 +22 15 +50 7 +38 5 +56 38 +49 14 +56 18 +44 18 +22 4 +8 23 +14 49 +37 8 +13 22 +19 48 +57 55 +52 4 +54 32 +35 5 +38 15 +10 52 +53 17 +24 10 +34 26 +43 14 +45 50 +52 17 +42 32 +24 54 +12 2 +3 11 +56 54 +31 11 +44 8 +16 40 +38 41 +34 33 +16 16 +1 49 +41 43 +21 28 +36 15 +45 36 +5 11 +48 17 +28 50 +43 27 +6 32 +53 49 +39 11 +48 36 +10 24 +27 25 +56 28 +32 39 +29 52 +10 23 +26 13 +1 46 +39 7 +5 10 +57 7 +52 5 +38 47 +12 36 +17 2 +14 42 +42 56 +10 40 +26 41 +21 55 +52 46 +36 20 +17 37 +24 56 +43 45 +24 1 +51 18 +5 47 +23 33 +41 55 +34 13 +40 18 +12 8 +16 37 +7 37 +50 1 +41 29 +36 1 +24 3 +15 25 +47 38 +26 56 +14 46 +45 52 +37 29 +50 14 +41 48 +47 52 +55 6 +48 20 +1 56 +37 57 +43 15 +16 9 +33 30 +50 38 +10 18 +52 23 +22 56 +34 2 +43 42 +31 42 +32 36 +37 45 +57 43 +7 16 +42 87 +28 4 196 +13 42 912 +31 35 208 +8 23 968 +26 15 79 +8 32 601 +10 29 126 +23 14 532 +35 29 981 +9 35 421 +34 20 922 +33 31 744 +32 17 926 +39 24 567 +21 7 113 +33 12 986 +34 21 540 +11 41 113 +18 33 291 +34 40 482 +26 29 751 +22 19 497 +15 6 237 +42 3 993 +6 21 665 +26 9 489 +35 40 309 +26 8 436 +31 25 984 +23 14 769 +4 38 829 +5 17 711 +35 29 327 +38 26 235 +22 32 403 +10 15 261 +10 6 763 +29 31 328 +4 19 841 +7 40 632 +10 1 475 +40 3 643 +1 38 231 +11 31 813 +21 10 658 +7 17 174 +1 25 403 +35 9 532 +35 10 24 +15 16 523 +10 25 158 +41 21 382 +1 21 693 +32 29 327 +2 5 628 +3 11 261 +16 11 361 +33 2 941 +38 34 788 +17 6 181 +34 13 594 +7 9 854 +24 10 672 +35 39 374 +33 38 546 +41 38 942 +21 9 822 +23 41 949 +33 36 2 +10 9 173 +42 40 742 +15 2 886 +6 23 601 +13 15 765 +8 6 894 +5 2 997 +12 20 896 +26 42 344 +42 32 226 +6 39 564 +16 38 529 +37 9 334 +27 12 8 +23 25 597 +14 30 130 +41 33 235 +22 42 820 +965 +25 37 +40 23 +24 19 +28 20 +4 41 +13 26 +36 21 +7 20 +33 9 +40 13 +27 11 +42 4 +10 32 +24 29 +32 19 +39 14 +13 36 +34 36 +11 19 +13 12 +16 23 +36 9 +2 40 +26 34 +6 21 +4 30 +32 1 +33 39 +33 12 +25 20 +30 19 +31 40 +10 23 +33 20 +39 1 +30 12 +24 23 +20 23 +18 1 +14 24 +22 15 +11 9 +13 42 +3 1 +11 25 +20 39 +1 7 +34 8 +27 25 +28 23 +23 13 +35 2 +33 10 +24 8 +9 35 +31 28 +5 42 +36 18 +39 36 +18 5 +18 36 +41 16 +42 33 +23 26 +13 6 +4 35 +16 38 +37 6 +4 18 +14 10 +9 42 +37 13 +39 30 +30 35 +21 6 +40 36 +39 38 +7 38 +28 27 +19 40 +33 22 +31 6 +16 23 +10 17 +38 21 +26 4 +20 20 +17 17 +5 4 +7 25 +7 2 +16 3 +40 22 +38 23 +6 14 +19 36 +34 5 +42 5 +27 7 +21 22 +27 2 +26 4 +19 42 +18 23 +1 25 +3 8 +24 18 +10 21 +37 6 +42 42 +17 16 +36 6 +20 33 +10 2 +39 28 +23 21 +29 4 +24 5 +1 40 +25 2 +20 25 +9 1 +40 16 +20 34 +19 17 +32 34 +32 25 +39 7 +13 5 +8 9 +32 28 +29 19 +30 8 +21 30 +3 2 +31 22 +26 37 +21 24 +9 40 +13 27 +14 2 +16 1 +24 13 +5 36 +17 10 +42 4 +35 26 +22 22 +34 41 +10 36 +42 38 +14 23 +33 34 +2 41 +29 13 +23 40 +14 39 +40 38 +7 2 +29 21 +9 29 +24 1 +12 2 +23 1 +40 30 +35 37 +25 6 +17 15 +37 17 +11 23 +29 32 +20 40 +26 15 +35 32 +14 20 +10 22 +6 31 +22 17 +32 42 +16 27 +29 8 +21 12 +13 38 +24 7 +10 33 +27 38 +22 4 +35 5 +16 26 +34 29 +3 41 +6 6 +29 27 +20 17 +25 35 +1 11 +42 22 +22 10 +15 2 +14 24 +34 40 +17 13 +41 7 +15 14 +30 6 +40 30 +4 3 +35 32 +28 11 +4 10 +3 5 +20 1 +24 40 +10 36 +41 24 +17 32 +21 31 +42 18 +37 14 +31 25 +19 27 +12 22 +29 3 +9 12 +13 13 +21 15 +15 39 +15 38 +36 23 +29 34 +4 1 +21 22 +31 20 +39 23 +33 26 +5 7 +10 15 +28 36 +15 34 +6 27 +4 26 +39 16 +22 10 +9 13 +32 37 +2 33 +37 22 +12 25 +39 9 +4 27 +32 6 +33 41 +20 16 +32 34 +8 37 +16 9 +19 13 +23 38 +22 31 +9 9 +26 8 +41 18 +30 10 +41 24 +16 2 +7 5 +7 39 +1 25 +11 33 +14 16 +25 30 +22 1 +42 2 +39 19 +33 3 +27 14 +8 25 +31 35 +34 27 +17 6 +28 23 +10 33 +17 9 +15 27 +41 28 +40 23 +15 20 +22 12 +21 16 +30 9 +16 12 +22 23 +36 9 +16 26 +35 32 +31 19 +10 38 +9 26 +2 21 +9 42 +6 6 +21 19 +25 42 +28 2 +13 14 +10 28 +25 30 +8 17 +36 23 +42 26 +10 28 +2 19 +21 8 +1 23 +28 9 +20 32 +12 40 +8 35 +37 35 +36 7 +6 1 +34 29 +30 40 +3 23 +20 2 +5 28 +27 6 +4 3 +12 2 +25 39 +10 1 +28 22 +38 33 +14 33 +26 5 +37 29 +5 27 +15 35 +24 17 +13 41 +16 15 +26 40 +21 28 +41 32 +29 21 +26 39 +21 10 +16 17 +42 27 +5 25 +31 41 +10 33 +25 22 +23 6 +37 34 +5 8 +6 30 +4 26 +13 2 +13 42 +22 37 +36 1 +4 9 +17 3 +33 21 +26 19 +17 33 +9 42 +12 32 +3 6 +23 7 +12 28 +35 15 +10 5 +16 20 +2 37 +14 37 +35 15 +3 7 +18 33 +25 41 +9 42 +31 18 +41 40 +7 41 +2 29 +6 13 +12 38 +27 21 +40 40 +39 42 +32 10 +36 25 +23 37 +31 40 +27 14 +36 36 +11 22 +11 7 +19 15 +5 20 +41 8 +30 10 +3 14 +29 41 +9 25 +40 41 +32 31 +23 12 +25 9 +7 8 +20 42 +41 30 +21 7 +36 38 +21 41 +15 17 +6 1 +26 7 +12 10 +5 21 +34 42 +19 22 +30 39 +33 11 +5 40 +18 23 +37 16 +10 14 +20 2 +9 40 +40 21 +12 1 +21 37 +7 33 +3 9 +11 34 +8 27 +13 36 +23 4 +4 25 +41 19 +5 35 +32 13 +4 9 +14 12 +4 11 +33 15 +11 9 +7 16 +41 9 +24 7 +41 30 +33 11 +23 11 +12 24 +36 8 +40 38 +41 29 +8 2 +35 19 +14 38 +27 2 +8 38 +10 14 +9 9 +21 30 +15 19 +15 4 +27 35 +14 39 +16 5 +2 13 +1 42 +39 6 +2 31 +25 13 +24 9 +14 31 +2 23 +3 8 +29 21 +38 42 +39 8 +3 23 +1 16 +17 14 +21 19 +27 21 +16 21 +24 17 +10 4 +27 31 +11 40 +20 12 +19 20 +18 3 +40 11 +2 34 +18 4 +14 18 +20 29 +32 40 +3 14 +16 18 +34 37 +33 41 +41 17 +28 9 +13 5 +18 29 +24 35 +31 19 +3 33 +10 19 +36 23 +36 11 +7 23 +6 9 +34 19 +25 24 +14 15 +22 12 +29 7 +20 39 +9 35 +25 30 +28 14 +6 28 +2 15 +4 37 +36 38 +4 40 +16 9 +7 8 +28 29 +31 41 +1 8 +8 27 +13 25 +24 21 +17 4 +9 42 +17 12 +28 16 +25 29 +11 18 +22 12 +15 38 +20 19 +3 3 +5 33 +1 3 +40 6 +28 10 +30 9 +29 5 +12 35 +2 27 +4 29 +42 28 +14 8 +1 35 +19 14 +28 37 +32 30 +39 35 +18 38 +35 14 +1 20 +21 31 +28 7 +33 38 +41 34 +20 1 +19 17 +26 32 +25 27 +22 41 +40 8 +35 27 +35 30 +17 11 +25 10 +24 25 +29 2 +11 13 +7 1 +6 3 +33 25 +1 9 +41 27 +38 21 +9 15 +20 4 +22 10 +28 13 +39 3 +21 19 +12 2 +42 38 +1 10 +8 5 +11 13 +6 1 +35 6 +7 34 +32 2 +10 38 +16 27 +41 36 +37 27 +4 31 +29 24 +6 38 +23 5 +33 21 +14 39 +26 22 +7 31 +20 42 +34 26 +31 24 +25 40 +17 39 +25 16 +30 17 +42 33 +3 26 +12 8 +19 34 +12 9 +10 24 +3 35 +3 10 +21 21 +9 13 +4 39 +34 27 +34 8 +21 16 +21 8 +30 18 +38 33 +41 5 +40 17 +38 8 +24 5 +31 26 +38 31 +33 14 +9 41 +24 11 +35 13 +37 27 +19 13 +40 39 +18 28 +13 13 +16 11 +15 13 +28 10 +18 9 +12 4 +32 5 +35 23 +19 1 +19 40 +9 12 +11 1 +36 29 +13 31 +23 30 +14 35 +40 29 +4 12 +40 31 +19 15 +37 29 +19 24 +33 9 +4 7 +7 21 +5 16 +32 13 +16 23 +41 27 +11 21 +14 25 +12 10 +11 15 +21 6 +1 38 +21 35 +24 37 +16 12 +3 18 +19 9 +36 21 +24 25 +33 38 +3 29 +22 11 +5 33 +33 16 +42 42 +28 19 +5 26 +14 25 +18 35 +19 32 +4 19 +5 20 +28 40 +38 9 +20 26 +4 20 +12 23 +30 15 +14 21 +30 13 +18 14 +29 22 +39 42 +3 13 +32 19 +2 34 +38 4 +11 23 +1 5 +29 18 +30 31 +37 40 +11 24 +12 22 +42 39 +35 17 +10 21 +39 5 +19 39 +17 6 +15 16 +39 10 +19 6 +30 19 +10 17 +36 37 +5 30 +34 13 +9 3 +35 9 +42 25 +23 7 +1 17 +11 17 +13 25 +23 28 +40 17 +35 16 +22 23 +32 29 +39 23 +24 41 +8 13 +9 17 +16 1 +23 13 +23 3 +17 24 +20 26 +38 30 +8 18 +15 6 +35 8 +21 12 +30 11 +39 24 +31 20 +22 39 +32 28 +13 3 +27 35 +13 7 +35 28 +28 10 +11 24 +40 16 +39 10 +21 29 +17 40 +41 2 +6 37 +25 36 +12 2 +32 41 +28 2 +42 12 +34 10 +18 25 +37 2 +32 3 +23 29 +19 19 +37 39 +6 11 +34 2 +11 39 +36 33 +33 3 +33 20 +41 18 +20 40 +29 9 +6 2 +33 40 +1 23 +1 23 +7 19 +42 1 +13 3 +10 3 +2 18 +41 35 +8 29 +35 38 +7 33 +11 24 +29 37 +32 34 +39 21 +29 37 +41 29 +18 5 +3 15 +4 14 +17 11 +16 16 +28 12 +8 33 +41 42 +29 3 +30 39 +26 16 +34 13 +5 28 +33 34 +22 31 +18 37 +36 21 +9 37 +32 25 +5 5 +38 30 +16 3 +20 12 +42 4 +12 30 +1 35 +1 32 +6 6 +15 38 +37 36 +25 12 +29 16 +32 37 +10 21 +18 12 +23 13 +41 37 +14 16 +4 13 +20 16 +40 18 +6 39 +7 11 +2 21 +5 36 +12 29 +5 40 +2 35 +35 9 +11 8 +20 34 +20 16 +26 31 +31 29 +42 8 +2 39 +25 8 +35 31 +16 34 +7 18 +27 17 +4 30 +12 3 +22 2 +11 32 +9 28 +21 29 +1 4 +17 32 +33 16 +39 32 +11 20 +37 1 +6 9 +33 13 +26 15 +27 30 +2 38 +30 21 +40 39 +11 6 +24 29 +32 23 +33 5 +12 23 +20 6 +10 28 +25 5 +27 29 +13 17 +41 38 +31 23 +23 31 +18 9 +9 15 +5 17 +21 26 +4 10 +6 34 +14 17 +12 32 +21 21 +15 1 +23 41 +29 33 +15 25 +27 2 +5 7 +32 23 +13 38 +35 17 +13 13 +1 14 +21 6 +3 32 +21 14 +19 39 +34 34 +39 13 +32 24 +3 3 +6 29 +2 9 +34 33 +29 4 +26 21 +21 36 +34 19 +5 10 +22 7 +41 42 +20 16 +38 10 +46 51 +20 40 862 +32 46 33 +3 4 169 +26 29 73 +39 5 334 +27 10 77 +31 11 934 +21 25 802 +24 35 487 +22 46 383 +44 19 935 +7 44 18 +31 40 239 +30 19 763 +28 12 279 +13 32 679 +37 17 401 +10 37 487 +6 8 781 +30 29 868 +43 20 820 +43 26 876 +42 5 625 +38 28 866 +17 9 677 +39 22 414 +25 6 436 +15 16 236 +24 15 732 +20 38 942 +16 34 66 +17 24 963 +22 20 723 +15 11 810 +26 21 649 +2 14 924 +3 32 359 +15 1 240 +16 18 720 +25 37 638 +11 46 727 +10 11 923 +40 32 594 +17 40 626 +26 19 839 +38 20 158 +25 17 613 +18 25 605 +19 40 972 +35 13 847 +2 17 744 +972 +26 42 +2 13 +28 33 +29 21 +23 3 +34 33 +40 7 +44 19 +17 40 +30 41 +31 2 +29 38 +36 41 +30 31 +5 16 +15 30 +11 16 +36 32 +3 19 +1 19 +15 34 +45 8 +34 42 +20 45 +29 3 +33 13 +5 15 +45 34 +3 22 +19 7 +31 33 +30 36 +42 20 +15 38 +32 15 +10 46 +42 8 +1 24 +43 21 +16 20 +23 2 +32 21 +17 24 +9 13 +40 21 +20 24 +1 43 +7 36 +16 22 +28 41 +30 31 +34 20 +33 35 +43 29 +9 12 +2 25 +7 28 +40 23 +45 2 +36 38 +16 3 +10 10 +45 16 +45 9 +37 26 +43 21 +11 31 +40 43 +13 30 +19 15 +35 15 +39 41 +36 26 +12 34 +27 41 +26 36 +37 35 +45 35 +4 44 +37 35 +23 34 +3 27 +12 36 +17 24 +19 36 +38 1 +44 24 +41 33 +4 46 +20 24 +40 39 +14 24 +21 6 +13 19 +3 43 +7 20 +24 3 +40 35 +38 11 +12 4 +40 43 +4 37 +15 38 +17 12 +32 30 +29 19 +23 36 +43 43 +42 3 +9 38 +45 9 +11 23 +11 45 +11 2 +9 17 +5 42 +7 2 +32 15 +34 2 +26 19 +31 3 +31 1 +38 27 +38 33 +29 46 +19 28 +9 23 +44 19 +21 8 +15 29 +18 13 +18 19 +9 3 +33 36 +44 7 +2 23 +9 32 +17 46 +13 8 +27 41 +2 39 +16 4 +15 13 +16 36 +15 24 +12 26 +37 30 +44 39 +26 31 +28 18 +37 29 +40 39 +14 4 +32 26 +6 12 +15 7 +4 30 +4 13 +37 19 +2 45 +37 7 +24 27 +36 22 +19 10 +6 46 +27 36 +28 14 +22 35 +17 7 +15 22 +13 23 +22 10 +46 19 +22 36 +32 17 +34 22 +24 12 +42 7 +27 14 +16 26 +7 42 +15 28 +3 30 +16 20 +36 24 +35 42 +46 5 +6 46 +17 21 +35 2 +38 17 +23 9 +22 18 +15 2 +25 31 +27 25 +20 35 +6 23 +18 22 +36 1 +39 18 +43 39 +16 42 +38 33 +16 20 +34 1 +30 5 +9 5 +16 24 +6 35 +2 32 +13 15 +14 19 +31 31 +34 20 +32 26 +32 22 +12 1 +17 43 +33 32 +11 15 +33 40 +13 35 +39 28 +12 38 +16 7 +24 23 +22 31 +41 6 +16 22 +20 41 +41 5 +16 7 +45 32 +43 26 +11 7 +34 37 +41 46 +26 33 +21 31 +24 31 +38 41 +7 7 +26 41 +6 35 +16 25 +29 4 +23 38 +10 22 +23 1 +41 27 +7 28 +18 1 +27 37 +27 41 +15 5 +25 6 +39 25 +6 18 +19 12 +6 28 +30 28 +32 7 +19 35 +22 35 +35 16 +16 42 +37 27 +36 17 +11 17 +5 25 +15 30 +25 7 +8 30 +19 27 +35 18 +2 19 +46 33 +19 12 +22 40 +1 4 +3 10 +39 39 +30 29 +3 40 +39 7 +18 7 +30 36 +7 38 +14 25 +12 2 +43 7 +14 36 +40 32 +1 9 +19 1 +12 15 +4 5 +1 33 +27 43 +26 19 +4 38 +19 27 +21 25 +18 34 +4 23 +30 40 +30 43 +29 17 +23 29 +19 35 +24 30 +44 21 +28 44 +8 2 +41 27 +20 38 +12 32 +18 33 +11 30 +20 8 +46 43 +1 23 +34 29 +33 10 +5 5 +38 22 +29 35 +43 10 +27 4 +12 15 +24 25 +6 36 +11 17 +22 21 +46 35 +22 40 +32 22 +16 13 +44 3 +22 42 +7 7 +18 29 +36 8 +39 10 +5 44 +24 28 +22 23 +11 26 +39 32 +40 33 +15 15 +26 40 +36 35 +6 27 +31 21 +23 32 +21 34 +14 10 +41 6 +19 45 +43 42 +20 19 +12 31 +38 5 +10 32 +37 24 +46 10 +11 30 +38 16 +10 23 +30 26 +8 5 +13 21 +14 7 +21 27 +45 17 +16 13 +29 28 +43 21 +32 6 +6 16 +24 45 +19 34 +28 10 +44 38 +32 27 +17 33 +31 30 +2 39 +30 22 +19 23 +32 34 +35 9 +9 25 +23 34 +24 28 +43 1 +20 15 +29 2 +19 26 +39 4 +46 3 +31 25 +26 32 +17 4 +7 29 +26 32 +10 8 +40 19 +32 16 +6 9 +37 3 +4 11 +17 32 +12 29 +5 44 +27 44 +46 11 +22 20 +42 32 +23 42 +14 2 +21 24 +3 15 +42 34 +24 41 +36 15 +43 39 +19 8 +18 24 +36 16 +21 16 +14 14 +20 29 +33 15 +15 9 +4 28 +4 25 +45 6 +39 40 +39 10 +35 23 +24 25 +15 36 +32 27 +13 16 +42 27 +25 3 +41 45 +32 21 +7 46 +30 11 +21 27 +35 20 +33 21 +7 19 +30 35 +41 2 +14 4 +37 39 +24 44 +2 13 +24 27 +16 12 +25 1 +33 31 +40 10 +35 14 +36 23 +27 16 +37 34 +35 15 +22 23 +16 35 +20 46 +22 37 +43 23 +4 15 +3 19 +26 21 +13 12 +6 6 +21 40 +13 5 +11 40 +20 1 +27 2 +9 2 +19 24 +31 32 +18 6 +23 8 +28 26 +22 31 +38 2 +45 4 +7 4 +9 22 +38 21 +26 42 +8 45 +36 34 +41 45 +30 13 +16 14 +44 33 +19 20 +35 40 +39 10 +18 30 +5 17 +33 6 +14 35 +27 5 +4 6 +40 11 +44 30 +39 32 +28 22 +44 43 +35 36 +24 1 +9 12 +34 42 +15 6 +25 14 +16 6 +19 29 +40 45 +28 37 +44 21 +42 35 +44 34 +21 25 +9 12 +16 37 +1 39 +31 4 +44 18 +45 12 +17 17 +19 26 +22 37 +3 10 +29 30 +46 20 +44 41 +9 42 +28 23 +20 30 +28 29 +20 29 +15 44 +26 12 +10 18 +18 20 +34 36 +46 10 +27 2 +19 3 +25 18 +23 22 +7 25 +11 34 +41 25 +12 22 +7 31 +44 22 +23 17 +33 32 +34 44 +45 22 +34 38 +31 8 +39 43 +10 11 +14 26 +33 14 +44 43 +2 38 +15 13 +8 22 +37 5 +43 7 +16 23 +32 3 +15 31 +24 2 +22 2 +3 9 +44 6 +19 6 +32 45 +19 29 +36 20 +15 4 +26 22 +25 11 +20 15 +17 35 +32 3 +38 46 +33 9 +41 2 +11 37 +10 8 +42 29 +13 21 +21 32 +44 10 +45 12 +14 19 +33 32 +29 46 +1 45 +29 26 +1 20 +19 27 +22 13 +29 32 +3 32 +34 38 +8 46 +13 29 +25 10 +38 24 +21 45 +36 1 +31 18 +40 25 +16 22 +4 11 +35 22 +31 11 +28 7 +42 24 +33 23 +15 40 +23 27 +22 41 +36 8 +12 4 +6 1 +44 30 +18 38 +2 28 +13 5 +32 2 +20 16 +12 41 +17 1 +18 3 +24 27 +42 40 +7 12 +34 37 +13 40 +34 12 +40 32 +42 12 +23 43 +33 35 +42 18 +30 9 +27 35 +44 43 +36 9 +39 7 +35 29 +46 36 +40 27 +20 6 +20 7 +17 8 +32 6 +13 2 +43 45 +31 32 +10 14 +40 36 +3 37 +27 32 +40 13 +38 28 +41 31 +17 34 +5 30 +33 25 +37 44 +26 16 +3 38 +18 45 +36 2 +30 45 +15 18 +28 11 +2 2 +42 41 +15 27 +17 9 +11 27 +37 16 +11 23 +34 41 +14 13 +10 17 +44 27 +9 33 +28 33 +25 37 +44 6 +1 39 +8 43 +28 16 +23 44 +24 28 +24 8 +37 34 +25 18 +28 38 +24 32 +2 21 +12 11 +7 34 +37 25 +24 28 +30 18 +20 31 +8 1 +46 31 +38 18 +6 16 +25 42 +43 3 +7 19 +35 30 +4 36 +4 9 +40 4 +42 30 +28 13 +5 5 +31 19 +30 32 +19 29 +16 11 +40 15 +20 13 +4 16 +9 10 +34 43 +39 31 +33 36 +40 26 +39 29 +4 14 +36 8 +19 20 +20 2 +45 39 +24 15 +43 12 +23 16 +24 27 +25 26 +36 13 +23 23 +37 9 +12 30 +28 45 +13 31 +6 2 +33 18 +15 6 +19 13 +38 37 +21 28 +42 44 +43 13 +18 16 +38 7 +22 14 +29 12 +16 41 +42 38 +33 2 +16 38 +43 2 +10 5 +2 22 +11 33 +6 32 +15 1 +23 5 +13 40 +14 45 +40 35 +6 23 +1 22 +11 42 +13 37 +37 28 +28 33 +24 31 +31 19 +7 41 +45 6 +20 7 +7 42 +6 13 +29 19 +5 17 +8 11 +39 8 +26 43 +43 32 +27 27 +7 8 +7 30 +33 37 +42 39 +31 35 +44 5 +41 44 +40 46 +5 17 +13 9 +33 20 +13 19 +21 38 +15 17 +23 41 +43 30 +42 43 +7 28 +33 43 +14 17 +31 6 +15 19 +3 3 +19 1 +19 31 +4 5 +44 16 +23 18 +8 31 +28 24 +19 18 +7 14 +14 8 +36 46 +4 3 +10 34 +8 25 +46 5 +27 12 +45 39 +36 2 +43 33 +18 13 +4 19 +43 31 +42 15 +2 3 +22 9 +4 11 +8 7 +8 18 +34 15 +36 33 +13 10 +45 12 +2 34 +13 44 +15 24 +10 12 +42 46 +43 38 +14 38 +34 35 +1 37 +40 2 +37 1 +19 24 +9 2 +4 22 +11 42 +27 12 +30 39 +3 38 +11 6 +3 6 +5 39 +37 12 +31 18 +41 25 +8 34 +20 38 +28 33 +15 36 +34 13 +5 39 +8 31 +44 31 +18 1 +22 28 +46 25 +27 45 +17 18 +4 41 +35 44 +13 37 +25 33 +28 6 +19 37 +36 6 +3 40 +38 10 +19 36 +41 36 +30 16 +17 23 +40 43 +21 5 +8 25 +45 43 +16 12 +27 41 +44 8 +40 10 +44 29 +9 46 +17 1 +4 35 +36 44 +24 19 +7 34 +41 41 +24 10 +45 32 +28 37 +22 43 +2 2 +37 39 +9 25 +2 1 +7 11 +40 23 +5 43 +5 40 +34 28 +6 35 +9 40 +29 33 +43 21 +18 24 +11 33 +21 7 +34 5 +39 36 +29 35 +30 36 +39 24 +6 43 +20 11 +36 2 +32 35 +36 41 +22 18 +27 19 +32 38 +39 34 +38 36 136 +36 23 589 +32 16 615 +23 4 687 +8 37 293 +37 35 542 +36 31 726 +10 23 201 +21 3 715 +1 16 105 +11 3 712 +38 39 54 +31 32 439 +36 3 426 +26 10 529 +28 35 178 +36 21 253 +38 30 65 +5 12 762 +37 1 941 +37 11 178 +34 10 864 +13 29 942 +25 15 719 +2 29 472 +14 18 401 +11 3 424 +38 2 496 +37 34 971 +39 20 92 +7 18 295 +16 12 365 +23 13 890 +11 38 539 +257 +28 2 +16 30 +8 27 +1 11 +19 27 +12 1 +14 34 +23 13 +14 34 +19 31 +5 34 +31 25 +7 33 +23 6 +31 35 +33 8 +25 37 +37 33 +24 27 +4 3 +3 4 +32 16 +37 4 +29 39 +26 36 +20 30 +20 11 +4 26 +4 26 +20 23 +10 13 +30 24 +11 17 +17 23 +4 9 +15 34 +1 7 +11 26 +10 28 +25 24 +24 5 +14 32 +16 18 +7 8 +32 26 +20 31 +39 10 +15 38 +15 20 +10 7 +28 24 +2 17 +19 12 +3 17 +39 27 +1 12 +32 15 +33 36 +21 39 +32 2 +26 12 +21 25 +11 35 +12 25 +4 21 +32 31 +34 33 +36 13 +33 38 +30 21 +26 19 +21 7 +33 14 +3 3 +14 34 +33 39 +35 14 +13 6 +10 13 +30 2 +22 11 +33 16 +32 18 +18 25 +17 36 +34 3 +15 16 +9 37 +18 39 +28 31 +22 21 +19 17 +35 20 +22 33 +32 2 +34 15 +12 16 +19 5 +34 36 +18 11 +32 13 +2 36 +17 38 +33 34 +26 21 +15 8 +3 33 +14 26 +14 24 +19 34 +25 2 +9 37 +18 28 +30 1 +13 36 +11 34 +9 1 +30 14 +38 12 +37 24 +32 12 +20 23 +33 33 +9 35 +18 16 +30 31 +7 27 +17 24 +15 7 +13 17 +4 12 +11 1 +12 29 +4 38 +1 1 +22 32 +12 30 +5 5 +13 2 +29 19 +7 19 +10 13 +6 27 +25 10 +22 37 +26 14 +9 25 +15 9 +14 18 +7 14 +7 17 +34 18 +7 38 +11 8 +1 39 +26 35 +18 25 +8 13 +12 21 +22 22 +18 36 +36 15 +21 39 +23 34 +6 29 +8 12 +6 2 +18 1 +29 28 +9 18 +17 34 +13 23 +19 20 +35 19 +29 6 +30 7 +2 26 +10 22 +14 32 +16 8 +10 12 +8 15 +14 25 +15 31 +2 23 +9 18 +7 21 +30 14 +29 25 +33 18 +31 12 +13 32 +26 22 +4 39 +14 8 +35 23 +20 3 +26 22 +16 29 +13 17 +2 21 +24 8 +30 3 +10 19 +27 31 +25 7 +3 37 +39 28 +19 31 +16 21 +38 11 +32 18 +13 7 +28 17 +35 29 +23 25 +10 35 +32 28 +37 31 +7 24 +22 31 +31 25 +17 19 +2 24 +38 18 +33 36 +28 25 +4 30 +20 31 +7 5 +21 18 +29 19 +13 11 +8 10 +2 3 +23 12 +23 3 +36 39 +21 27 +24 19 +5 17 +4 21 +31 7 +11 11 +27 7 +4 36 +24 33 +15 37 +4 11 +35 33 +14 18 +5 36 +20 30 +24 1 +17 8 +8 21 +14 12 +62 58 +8 54 609 +29 16 136 +10 45 858 +59 11 904 +4 23 224 +26 10 386 +19 47 290 +24 19 629 +45 14 53 +23 38 866 +14 45 291 +9 10 790 +62 17 186 +45 13 817 +30 15 433 +13 38 762 +26 55 798 +52 16 33 +30 58 842 +37 19 309 +58 30 541 +6 38 566 +31 37 745 +38 17 933 +56 46 273 +32 58 887 +18 20 33 +49 9 510 +35 38 865 +32 10 201 +6 3 827 +21 8 54 +44 38 19 +20 12 577 +9 5 985 +7 35 168 +45 52 161 +11 36 605 +52 7 129 +27 38 784 +17 42 789 +35 62 784 +29 41 560 +57 61 301 +39 5 175 +3 11 615 +23 54 734 +1 62 34 +48 52 842 +4 14 351 +33 28 222 +1 2 347 +37 27 292 +48 21 448 +8 57 804 +32 58 928 +29 18 411 +12 16 989 +69 +61 4 +54 2 +15 55 +33 42 +32 31 +40 7 +5 4 +22 52 +22 33 +59 15 +48 27 +10 11 +53 25 +26 62 +40 40 +29 37 +41 20 +38 53 +12 6 +30 42 +37 8 +48 41 +9 7 +29 29 +37 23 +43 22 +49 52 +30 37 +12 53 +37 51 +28 3 +23 4 +22 61 +56 32 +2 24 +9 38 +29 56 +15 35 +60 43 +1 34 +1 43 +53 48 +30 20 +22 41 +11 56 +28 38 +58 50 +42 16 +46 33 +45 48 +54 51 +21 18 +44 33 +53 39 +11 53 +8 12 +32 60 +59 59 +17 18 +38 25 +10 1 +61 3 +48 38 +18 30 +8 60 +13 60 +48 33 +15 27 +2 5 diff --git a/spoj/KAUSANDNIHA output file #1 b/spoj/KAUSANDNIHA output file #1 new file mode 100644 index 0000000..b2ccb62 --- /dev/null +++ b/spoj/KAUSANDNIHA output file #1 @@ -0,0 +1,4412 @@ +2042 +-1 +2115 +-1 +-1 +1807 +2111 +1272 +1569 +2074 +1496 +-1 +-1 +-1 +2317 +3814 +1826 +1330 +2550 +2653 +-1 +1569 +-1 +1683 +1315 +-1 +1381 +3409 +-1 +3277 +1359 +2719 +1544 +-1 +2911 +1225 +-1 +1666 +-1 +3706 +-1 +-1 +1219 +2009 +1305 +-1 +2609 +3106 +1346 +-1 +2373 +2077 +1347 +2085 +-1 +-1 +0 +1765 +2799 +2349 +1437 +-1 +-1 +-1 +-1 +2070 +2726 +2458 +2354 +1482 +0 +2939 +0 +-1 +0 +-1 +1868 +2518 +-1 +2156 +-1 +0 +2985 +-1 +-1 +2840 +2302 +1233 +-1 +2107 +-1 +-1 +2659 +2261 +2277 +-1 +199 +2920 +1296 +-1 +1492 +765 +1920 +794 +990 +2003 +-1 +-1 +1497 +1648 +0 +2894 +2076 +3329 +1582 +-1 +940 +-1 +2787 +-1 +-1 +1217 +-1 +1420 +3247 +-1 +2115 +-1 +1699 +-1 +-1 +1246 +-1 +2929 +2456 +2924 +983 +1584 +2628 +-1 +2509 +1497 +1721 +-1 +0 +-1 +2171 +3433 +2910 +2728 +2624 +-1 +1509 +2509 +2561 +-1 +3183 +-1 +2033 +-1 +1690 +1793 +-1 +2150 +2099 +2401 +2410 +1514 +-1 +-1 +-1 +1509 +-1 +-1 +1542 +-1 +-1 +-1 +1784 +1148 +1270 +1431 +2645 +-1 +2641 +2322 +1931 +-1 +-1 +-1 +-1 +-1 +1615 +1461 +-1 +2467 +-1 +-1 +3177 +-1 +1994 +3190 +-1 +2002 +1307 +-1 +-1 +0 +-1 +-1 +1593 +229 +-1 +-1 +-1 +1796 +-1 +-1 +-1 +2281 +-1 +730 +-1 +3591 +1933 +-1 +2875 +3114 +2898 +2860 +379 +1488 +2710 +1263 +-1 +-1 +-1 +-1 +2728 +1988 +3309 +3122 +-1 +1142 +2308 +2062 +1868 +-1 +2878 +-1 +3206 +-1 +-1 +2344 +3175 +879 +800 +2025 +2382 +-1 +1617 +-1 +-1 +544 +-1 +2133 +-1 +1116 +3016 +-1 +2334 +842 +-1 +2405 +2022 +1348 +1786 +3581 +-1 +-1 +-1 +1633 +3405 +3007 +-1 +2065 +-1 +-1 +3737 +-1 +1084 +-1 +1277 +2853 +1814 +2458 +2050 +2284 +-1 +-1 +2264 +2457 +-1 +-1 +1186 +1547 +2498 +2184 +1051 +2301 +-1 +874 +812 +1076 +-1 +-1 +2907 +-1 +2285 +-1 +1908 +1407 +2458 +3255 +-1 +1022 +493 +-1 +1804 +-1 +-1 +0 +1238 +-1 +1030 +-1 +3255 +-1 +2205 +-1 +-1 +-1 +1221 +-1 +-1 +-1 +-1 +1484 +-1 +-1 +2720 +2039 +-1 +690 +2050 +-1 +2112 +-1 +-1 +-1 +2944 +-1 +929 +2050 +3138 +-1 +2689 +1743 +-1 +-1 +-1 +-1 +2002 +-1 +2803 +2207 +1889 +2741 +-1 +-1 +-1 +2171 +-1 +2380 +-1 +1569 +-1 +899 +-1 +307 +-1 +3246 +3305 +-1 +2429 +1631 +1786 +3626 +-1 +1459 +2287 +-1 +-1 +0 +2161 +3058 +2255 +1367 +2007 +1392 +-1 +1740 +-1 +-1 +-1 +3219 +-1 +827 +3 +1151 +-1 +2363 +2208 +946 +1157 +2208 +1289 +722 +1900 +1094 +1313 +2250 +2465 +944 +-1 +1921 +821 +1747 +1100 +379 +1490 +1336 +1003 +1338 +1057 +253 +893 +1311 +2385 +1921 +672 +1196 +1737 +157 +1711 +1663 +405 +1333 +1453 +1744 +2041 +1061 +1178 +845 +1340 +1190 +933 +822 +744 +562 +-1 +1124 +2379 +1653 +1541 +1747 +-1 +2401 +-1 +-1 +997 +1450 +677 +712 +2077 +1101 +898 +3157 +600 +1390 +1487 +2319 +64 +670 +1491 +1694 +1581 +1397 +-1 +1803 +1945 +883 +2239 +2311 +-1 +1304 +1092 +455 +1058 +1423 +-1 +-1 +2815 +1054 +1583 +1321 +2752 +508 +795 +1351 +883 +1055 +-1 +0 +2144 +1526 +1465 +907 +1259 +0 +652 +1746 +-1 +1322 +0 +1328 +2233 +-1 +2036 +777 +980 +868 +609 +1693 +2196 +1607 +-1 +1548 +1193 +1584 +1450 +1166 +920 +1675 +1267 +1570 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +465 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +741 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +0 +-1 +-1 +-1 +524 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +0 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +0 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +535 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +0 +-1 +-1 +-1 +-1 +978 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +502 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +0 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +0 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +0 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +568 +-1 +-1 +-1 +535 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +328 +-1 +-1 +-1 +-1 +3324 +-1 +-1 +167 +-1 +-1 +-1 +0 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +1884 +-1 +0 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +529 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +167 +-1 +-1 +529 +-1 +-1 +-1 +-1 +-1 +2549 +-1 +-1 +-1 +-1 +-1 +970 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +0 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +2987 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +20 +-1 +-1 +0 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +970 +1628 +-1 +1721 +-1 +2646 +2997 +186 +1844 +1690 +3504 +1671 +992 +1917 +1820 +1357 +1782 +2041 +0 +2353 +1363 +1480 +-1 +3361 +2675 +1425 +2540 +-1 +1413 +1621 +2771 +0 +2495 +1146 +3211 +1469 +2540 +2465 +1914 +2345 +-1 +1293 +787 +4056 +2287 +3420 +831 +0 +1876 +-1 +1626 +2459 +1017 +2548 +0 +2759 +948 +2151 +1491 +1769 +1920 +1361 +1438 +-1 +-1 +3192 +-1 +3055 +493 +2860 +1680 +-1 +1986 +-1 +1483 +1134 +3303 +-1 +-1 +1611 +2323 +2411 +-1 +2597 +2223 +-1 +1263 +1384 +1871 +2105 +2273 +3000 +-1 +868 +1682 +-1 +2855 +856 +1865 +3244 +3350 +2147 +2597 +2562 +1593 +1820 +2681 +-1 +1646 +1909 +1844 +2429 +-1 +621 +2246 +-1 +2180 +955 +3120 +1551 +1007 +2602 +1708 +2334 +1128 +-1 +1856 +-1 +969 +60 +3164 +1642 +1630 +1837 +1970 +3024 +1713 +2677 +2074 +513 +-1 +-1 +999 +2057 +-1 +1394 +1332 +2278 +-1 +1938 +2619 +0 +1194 +1445 +923 +1578 +2157 +2229 +309 +493 +1756 +766 +916 +1365 +770 +1545 +2912 +2147 +2300 +1628 +4225 +2283 +2986 +1280 +1130 +1756 +2562 +879 +-1 +1154 +-1 +1956 +2642 +2454 +-1 +1114 +2572 +1360 +1476 +3191 +2656 +1293 +2767 +2833 +-1 +-1 +1915 +2753 +2121 +1651 +1201 +3674 +3662 +2171 +425 +-1 +2418 +464 +522 +2626 +-1 +1814 +1581 +2025 +2647 +1862 +-1 +-1 +2423 +4419 +2191 +1871 +1493 +1856 +1094 +2873 +2465 +1978 +875 +2047 +-1 +102 +152 +2597 +-1 +1844 +3303 +3604 +1082 +1679 +2915 +-1 +1077 +4056 +2338 +1716 +2438 +2362 +-1 +1484 +2041 +1377 +4013 +852 +370 +1807 +1201 +2547 +-1 +1259 +1757 +-1 +708 +1713 +2528 +3183 +2771 +-1 +-1 +734 +1864 +-1 +-1 +1870 +1622 +2100 +1935 +983 +1842 +2527 +297 +2495 +2704 +1496 +1663 +2676 +1099 +1180 +-1 +1412 +1878 +2761 +1367 +2642 +-1 +2338 +2901 +2418 +-1 +1217 +737 +341 +-1 +752 +2552 +-1 +-1 +1570 +2537 +0 +1007 +983 +1895 +1698 +1264 +2333 +202 +1859 +2937 +1969 +1980 +1756 +936 +1100 +1751 +-1 +1128 +1264 +2416 +-1 +2105 +2771 +367 +-1 +-1 +565 +919 +1524 +1138 +2163 +2207 +-1 +2115 +217 +2317 +1145 +2051 +2435 +1602 +-1 +341 +1989 +-1 +2499 +2873 +3393 +2270 +2558 +-1 +-1 +4419 +767 +-1 +-1 +2269 +-1 +-1 +2102 +631 +3192 +-1 +1451 +1614 +2360 +812 +2242 +1698 +2147 +2341 +-1 +2698 +1119 +2353 +2039 +812 +-1 +1145 +-1 +1408 +2527 +1687 +2347 +1224 +1689 +1591 +285 +722 +-1 +2181 +2217 +-1 +3421 +1240 +-1 +1514 +1972 +748 +1931 +2268 +2098 +2761 +2125 +1225 +1993 +602 +1487 +2994 +-1 +-1 +2688 +1591 +2188 +-1 +1843 +-1 +971 +2686 +3977 +1079 +-1 +1990 +1361 +-1 +1031 +1864 +-1 +2774 +3053 +-1 +-1 +-1 +-1 +1927 +1226 +1692 +536 +318 +225 +1937 +2062 +1115 +2377 +331 +1626 +1822 +2036 +3155 +1629 +1127 +-1 +1072 +1148 +3093 +511 +0 +1250 +1302 +-1 +2253 +2411 +2263 +1872 +-1 +3322 +1394 +0 +1705 +3253 +1562 +1642 +1629 +295 +2121 +722 +2197 +-1 +1804 +848 +2872 +902 +1815 +-1 +1274 +1725 +3004 +-1 +2429 +1288 +1250 +2100 +1069 +-1 +1301 +-1 +1064 +2013 +2443 +0 +964 +2638 +3760 +-1 +3442 +-1 +2191 +254 +542 +-1 +2361 +1357 +1478 +-1 +1513 +3421 +1281 +2022 +1931 +1638 +1380 +-1 +-1 +1745 +224 +3396 +1019 +1680 +3942 +-1 +2852 +1550 +2339 +1689 +1763 +974 +1725 +-1 +2429 +2073 +1366 +1381 +1680 +-1 +1937 +1116 +1937 +3155 +1545 +870 +1972 +2342 +3562 +1263 +2370 +1804 +1428 +1940 +1281 +2805 +1902 +0 +-1 +2144 +-1 +1949 +1834 +3184 +-1 +2145 +-1 +1753 +-1 +-1 +1927 +1478 +0 +1822 +-1 +2725 +1443 +-1 +2400 +2363 +2062 +3297 +-1 +1095 +247 +-1 +1873 +2418 +2022 +1885 +997 +-1 +-1 +1605 +2999 +1857 +1987 +0 +2280 +-1 +658 +705 +974 +1725 +3252 +2949 +2253 +-1 +1393 +1725 +2412 +-1 +154 +-1 +1518 +758 +-1 +-1 +2252 +1425 +2094 +3249 +2279 +2025 +1182 +3344 +-1 +3252 +1337 +2284 +3227 +2098 +4624 +1330 +700 +2525 +-1 +1424 +2561 +1639 +722 +1980 +3053 +-1 +848 +2218 +3605 +-1 +-1 +2146 +1232 +1700 +-1 +2549 +2146 +3093 +2062 +-1 +1307 +-1 +1233 +186 +-1 +2987 +761 +1666 +2648 +2242 +3765 +799 +1874 +1274 +2541 +-1 +331 +1116 +2119 +1727 +-1 +445 +0 +1723 +2756 +880 +2513 +3249 +2418 +-1 +3499 +941 +2881 +1985 +1263 +-1 +1666 +827 +1595 +1104 +1428 +2688 +2339 +1514 +1502 +2421 +2187 +566 +-1 +2446 +2098 +945 +330 +2837 +1725 +1814 +1712 +3760 +1596 +1027 +2686 +389 +448 +838 +2489 +1969 +2132 +1425 +1947 +3155 +2263 +2784 +1606 +2268 +-1 +1361 +-1 +1639 +933 +2877 +2841 +3565 +-1 +1404 +2157 +-1 +1216 +3127 +3004 +1287 +669 +-1 +1995 +1714 +1434 +1560 +1937 +2460 +2616 +2742 +2094 +1822 +665 +1088 +2025 +2735 +1610 +844 +619 +1575 +1149 +1076 +1342 +1408 +453 +798 +900 +1922 +1627 +1159 +2368 +2412 +1361 +1151 +1480 +1023 +468 +2880 +928 +1326 +986 +1895 +3007 +517 +755 +1882 +873 +3069 +1427 +2492 +1068 +2196 +1052 +1218 +912 +1382 +1203 +2087 +806 +1459 +2128 +2177 +1603 +1171 +976 +1448 +197 +1832 +1552 +293 +1328 +1906 +293 +474 +1125 +917 +1002 +1428 +529 +1005 +1666 +1524 +833 +1533 +2052 +1678 +468 +1254 +973 +906 +2565 +1686 +1754 +730 +1361 +679 +924 +1064 +0 +0 +2272 +929 +1478 +622 +1189 +1152 +1370 +2218 +1538 +1552 +1724 +1514 +1935 +1064 +1126 +1475 +403 +1660 +1939 +658 +1005 +0 +941 +1087 +1882 +1147 +1998 +1069 +1530 +2023 +808 +1305 +1895 +648 +1117 +922 +1826 +1268 +611 +919 +1894 +925 +1830 +1227 +1867 +1968 +1550 +1058 +823 +1330 +506 +2420 +2493 +760 +1698 +1617 +679 +1408 +364 +0 +922 +978 +579 +769 +1157 +1176 +1152 +1088 +1922 +908 +1478 +784 +299 +1147 +1927 +1000 +1987 +531 +656 +418 +1186 +1062 +327 +1404 +79 +477 +3261 +856 +730 +1329 +226 +1703 +902 +1603 +1079 +1443 +976 +1540 +1338 +1414 +602 +941 +374 +0 +2066 +1749 +182 +1121 +629 +856 +886 +2196 +482 +1183 +495 +1607 +1500 +1987 +1980 +477 +1915 +1404 +1754 +1941 +1005 +978 +1712 +926 +890 +1416 +2031 +390 +3210 +2740 +1102 +2135 +0 +705 +659 +314 +1186 +941 +1060 +1514 +1921 +1153 +781 +885 +261 +1573 +1076 +2079 +1064 +1182 +856 +1199 +960 +941 +1363 +2120 +571 +2369 +886 +235 +2239 +1268 +1259 +957 +2038 +1152 +1058 +0 +436 +526 +1654 +1712 +1409 +885 +919 +403 +348 +2130 +1496 +1331 +1309 +1751 +609 +2947 +934 +208 +1826 +181 +2177 +976 +852 +1854 +1806 +1088 +1998 +2740 +856 +1827 +1695 +1611 +1151 +602 +477 +1555 +575 +489 +1558 +833 +0 +2011 +837 +2225 +2372 +1600 +1496 +933 +1186 +344 +1600 +2435 +1220 +1000 +1749 +2190 +2238 +800 +531 +732 +782 +941 +1987 +1323 +2823 +2468 +2079 +1980 +1927 +556 +475 +1534 +546 +1953 +1208 +633 +2609 +285 +1312 +1516 +523 +673 +1949 +1493 +784 +738 +658 +941 +2119 +1548 +926 +976 +1014 +601 +1322 +1644 +1500 +1064 +1651 +912 +1363 +779 +1553 +1043 +617 +1470 +904 +833 +2337 +1224 +956 +2557 +285 +1390 +2239 +1654 +2031 +285 +869 +291 +1198 +833 +1035 +1017 +495 +1273 +1002 +1532 +1611 +0 +1077 +453 +1136 +1262 +517 +2947 +0 +1871 +608 +1549 +2460 +1452 +1654 +2092 +1166 +331 +1017 +655 +2170 +331 +1107 +2146 +1848 +113 +548 +382 +418 +782 +671 +1962 +998 +1224 +497 +2052 +348 +1517 +1475 +1291 +1524 +2823 +506 +745 +1763 +1156 +730 +1149 +1035 +2211 +1627 +1981 +1463 +2393 +1414 +1138 +1553 +2939 +1719 +860 +1218 +969 +1204 +1443 +1848 +348 +1062 +2634 +1219 +908 +1166 +1401 +1377 +1921 +1935 +671 +1524 +0 +1968 +1549 +1143 +1946 +1922 +1652 +1651 +810 +564 +1379 +1184 +845 +1756 +1724 +1660 +784 +579 +1174 +1323 +760 +1551 +2011 +1611 +856 +1312 +1404 +1738 +904 +896 +3090 +900 +904 +1962 +1666 +2244 +1863 +786 +2092 +1000 +1322 +235 +669 +1749 +1894 +1363 +696 +1555 +609 +1353 +1186 +350 +956 +671 +2168 +830 +1607 +2740 +897 +2087 +197 +1496 +2946 +1576 +886 +1887 +548 +1737 +957 +1107 +1726 +926 +902 +2211 +1184 +1330 +1561 +833 +1890 +1554 +284 +639 +2740 +314 +3090 +0 +1615 +1382 +831 +1600 +1827 +1516 +1938 +1935 +1530 +1604 +1737 +499 +2877 +2083 +2107 +374 +837 +1548 +1941 +890 +1931 +546 +922 +1941 +1826 +570 +2128 +1896 +1109 +1946 +1678 +782 +158 +830 +1273 +1629 +806 +1224 +1134 +648 +1229 +924 +434 +2539 +856 +2104 +1326 +2011 +1927 +579 +475 +1644 +1629 +782 +522 +653 +1535 +575 +1703 +237 +2477 +1636 +798 +551 +1493 +617 +1922 +973 +1003 +2146 +1023 +904 +491 +745 +942 +1681 +1125 +1224 +2203 +2168 +2135 +672 +952 +976 +0 +1199 +1802 +1826 +1459 +856 +1220 +2374 +546 +1380 +806 +671 +2023 +572 +807 +1953 +1204 +1717 +1050 +2477 +2038 +683 +1862 +0 +361 +765 +1600 +1440 +2361 +1637 +779 +1828 +1686 +2135 +1121 +1074 +1258 +899 +1548 +459 +2361 +517 +1549 +633 +2025 +1149 +1735 +113 +1652 +1138 +1361 +1229 +495 +1366 +1962 +884 +468 +231 +682 +1179 +1695 +900 +1526 +619 +830 +546 +1102 +1871 +1615 +709 +0 +1037 +1208 +1366 +1243 +900 +841 +2460 +1933 +724 +1945 +2539 +2170 +1737 +1838 +2502 +2244 +730 +1077 +1719 +900 +1962 +829 +1062 +1674 +1363 +1886 +840 +1717 +2740 +1077 +703 +658 +1456 +1751 +181 +523 +398 +1786 +3007 +679 +1485 +2392 +594 +1149 +197 +837 +956 +963 +782 +1184 +2177 +806 +808 +1611 +327 +1153 +1712 +1280 +852 +760 +1603 +1323 +1312 +1945 +2051 +1508 +237 +800 +1603 +1961 +567 +1921 +1254 +1830 +1719 +1946 +1247 +1624 +1600 +1717 +1117 +398 +784 +806 +1176 +1005 +1136 +1927 +1493 +2225 +2111 +815 +1425 +1654 +1219 +881 +0 +905 +963 +1962 +1395 +2 +609 +1882 +526 +1404 +299 +1123 +1252 +1000 +1000 +2000 +810 +1719 +976 +1232 +1064 +902 +599 +730 +1717 +633 +1268 +1032 +633 +1166 +1906 +1145 +2750 +782 +0 +2557 +1217 +1360 +1102 +2052 +602 +594 +2468 +1157 +1058 +1774 +619 +334 +611 +0 +2051 +622 +896 +1408 +3069 +499 +928 +0 +314 +1485 +2120 +910 +960 +658 +1277 +1603 +1538 +2130 +1908 +2239 +1543 +564 +608 +1558 +1617 +2058 +1517 +1171 +197 +1399 +922 +2239 +572 +328 +780 +1545 +934 +208 +1317 +1021 +1898 +2880 +1595 +1938 +1468 +1749 +784 +1060 +926 +709 +851 +1957 +982 +671 +1625 +79 +3077 +1200 +1968 +683 +963 +798 +1208 +1615 +2170 +1930 +1600 +1548 +2066 +1183 +781 +987 +987 +1440 +434 +711 +784 +1404 +1008 +1551 +2337 +0 +545 +949 +1072 +419 +1935 +885 +1208 +1079 +703 +0 +1769 +468 +1219 +1838 +1751 +0 +1424 +1125 +0 +624 +1320 +1157 +1530 +784 +619 +2168 +1390 +1503 +1360 +2239 +575 +3792 +2643 +-1 +722 +-1 +-1 +1925 +935 +626 +-1 +1609 +1927 +-1 +1974 +2904 +3718 +1046 +-1 +1925 +3195 +302 +-1 +3595 +-1 +2837 +-1 +2668 +-1 +775 +953 +-1 +-1 +2096 +2801 +1570 +1650 +4839 +972 +1525 +2879 +-1 +2635 +963 +2576 +2041 +2451 +3703 +-1 +2156 +-1 +1974 +2945 +-1 +949 +3468 +1357 +3811 +-1 +-1 +-1 +2165 +0 +-1 +-1 +2089 +1525 +934 +1682 +3008 +2955 +1219 +-1 +-1 +4248 +-1 +-1 +1851 +-1 +3029 +1851 +-1 +2119 +-1 +963 +-1 +3041 +3496 +-1 +561 +2451 +1424 +2631 +1238 +2245 +2318 +2787 +2372 +2076 +1991 +2970 +1682 +2149 +2801 +2791 +2329 +912 +-1 +0 +2148 +2323 +-1 +-1 +-1 +2543 +677 +625 +3295 +1570 +2741 +839 +1192 +1984 +2611 +-1 +2511 +2858 +-1 +935 +2019 +3085 +3022 +2816 +2256 +-1 +18 +-1 +1897 +1253 +3729 +-1 +2794 +2334 +2066 +-1 +732 +2999 +2762 +3331 +2050 +3730 +2162 +1424 +3416 +2405 +3840 +3908 +2857 +1207 +1999 +-1 +2952 +1928 +-1 +2486 +2302 +-1 +4180 +1942 +2551 +1920 +-1 +2033 +1599 +-1 +1220 +2222 +3754 +4308 +2633 +2776 +4308 +3667 +2688 +2879 +-1 +3315 +1131 +2302 +1415 +2194 +1646 +-1 +2854 +2439 +1478 +1202 +2665 +-1 +2854 +-1 +3268 +1957 +3529 +-1 +2879 +542 +3493 +3061 +968 +2499 +1964 +2066 +3266 +0 +2945 +2405 +416 +4186 +2308 +-1 +810 +-1 +847 +2161 +1145 +4144 +-1 +1249 +-1 +2156 +-1 +-1 +4144 +-1 +876 +3098 +2029 +-1 +-1 +2280 +1828 +-1 +0 +-1 +2499 +1325 +3006 +-1 +2033 +-1 +-1 +3811 +1196 +564 +-1 +2668 +436 +2663 +1041 +3137 +3561 +3621 +2519 +3048 +1942 +1455 +3529 +564 +-1 +1799 +2997 +3718 +3164 +3609 +2563 +2175 +2342 +-1 +3137 +1010 +2338 +2042 +0 +868 +953 +3349 +3769 +-1 +2945 +2281 +3535 +2668 +-1 +594 +2612 +3195 +3946 +1692 +-1 +3273 +839 +1825 +2563 +802 +786 +-1 +1735 +1817 +2137 +-1 +3048 +3324 +2423 +3793 +2574 +-1 +158 +2442 +-1 +2908 +3318 +1926 +-1 +2915 +-1 +0 +881 +3587 +3196 +2288 +3946 +1576 +-1 +1799 +3051 +1559 +1010 +416 +2302 +2860 +1373 +0 +2129 +-1 +2447 +3665 +3475 +-1 +2984 +830 +-1 +0 +1811 +-1 +1638 +2280 +-1 +2193 +2556 +-1 +-1 +2916 +1834 +2404 +1629 +1683 +1364 +1650 +2908 +3037 +-1 +941 +4214 +3314 +4219 +2004 +-1 +2302 +2793 +1525 +2269 +1761 +-1 +3257 +3400 +2927 +1760 +-1 +1974 +2794 +2745 +-1 +1872 +2127 +1290 +-1 +3475 +3703 +2643 +2881 +839 +1358 +392 +1478 +2405 +1748 +1865 +2405 +2342 +972 +1806 +1726 +1980 +1288 +1220 +3072 +3665 +3498 +727 +723 +1789 +-1 +924 +2378 +1929 +3595 +-1 +-1 +1957 +3428 +1688 +-1 +2127 +0 +1769 +-1 +2372 +2691 +2361 +-1 +1424 +2447 +-1 +1576 +-1 +1760 +2302 +3483 +2192 +-1 +2635 +2552 +2908 +2004 +2665 +-1 +953 +3811 +-1 +3416 +2451 +3496 +2643 +1928 +4182 +1801 +-1 +1514 +3118 +-1 +2046 +2029 +1219 +-1 +1455 +1106 +2037 +-1 +2098 +1925 +649 +3121 +0 +2041 +1843 +1173 +2883 +1709 +1421 +2561 +833 +1041 +-1 +2720 +1249 +2390 +-1 +3047 +2313 +2503 +3792 +-1 +-1 +-1 +3008 +3599 +-1 +1834 +2076 +2447 +2997 +2384 +-1 +3118 +2858 +2797 +1173 +1698 +830 +1747 +2650 +-1 +972 +3468 +3595 +1997 +2281 +1761 +912 +-1 +2913 +2423 +3315 +4192 +802 +3468 +1963 +2574 +1361 +3751 +-1 +0 +839 +2037 +2042 +868 +1106 +-1 +3686 +-1 +2597 +2793 +1769 +3890 +2999 +1730 +2706 +-1 +1650 +1709 +1925 +605 +-1 +3164 +1112 +-1 +2026 +2164 +2917 +-1 +-1 +4192 +-1 +3103 +2695 +1957 +923 +3732 +-1 +2650 +2390 +2066 +3466 +2785 +2668 +-1 +359 +1744 +1707 +2380 +2256 +3582 +2647 +-1 +912 +-1 +2098 +2419 +2048 +2643 +1450 +359 +1264 +-1 +-1 +1410 +2342 +3865 +3314 +2635 +3421 +-1 +3266 +-1 +2511 +-1 +73 +2883 +2563 +1095 +2478 +359 +3103 +3083 +3157 +1125 +2609 +-1 +-1 +2083 +1239 +2156 +1288 +1942 +934 +3811 +3802 +-1 +1983 +-1 +-1 +-1 +2970 +2237 +1698 +2864 +3256 +1843 +1964 +2879 +-1 +1935 +2797 +1928 +2383 +4090 +2029 +1273 +4248 +594 +3399 +-1 +-1 +4227 +3038 +2415 +2650 +-1 +3349 +3587 +-1 +1591 +2537 +2787 +1830 +2269 +2643 +-1 +833 +2556 +-1 +1980 +1760 +1273 +866 +-1 +1997 +3493 +-1 +2934 +2776 +1656 +-1 +-1 +-1 +956 +2857 +0 +-1 +1810 +677 +1000 +1963 +-1 +-1 +3567 +888 +3498 +-1 +-1 +638 +3582 +2574 +3544 +3903 +-1 +3475 +2793 +2029 +605 +866 +2013 +2159 +3136 +4210 +638 +3475 +2997 +1101 +3018 +866 +2864 +1761 +3622 +2318 +953 +3811 +-1 +2425 +1122 +4118 +2842 +0 +1211 +2329 +912 +1046 +1983 +1818 +2334 +1565 +3718 +1663 +-1 +1811 +2906 +3416 +-1 +1834 +2232 +-1 +732 +2123 +-1 +1928 +1451 +-1 +0 +1078 +3900 +-1 +1512 +1793 +-1 +1997 +2245 +2047 +3369 +4290 +2638 +720 +2945 +3304 +3072 +-1 +2254 +-1 +3037 +3052 +2781 +2380 +-1 +2269 +240 +-1 +1273 +-1 +2076 +-1 +2160 +2483 +2300 +2913 +-1 +1828 +1211 +-1 +-1 +2787 +4308 +2948 +912 +2384 +3265 +3880 +876 +1959 +0 +4381 +1716 +-1 +959 +2315 +3665 +-1 +627 +2384 +2576 +-1 +2245 +2503 +1695 +-1 +1817 +2916 +3811 +-1 +1668 +1914 +2955 +0 +3195 +1211 +1692 +4126 +-1 +2695 +3475 +2816 +4219 +3498 +-1 +169 +2035 +1217 +1131 +3756 +-1 +-1 +-1 +3022 +2094 +1921 +3293 +2323 +2313 +1288 +4381 +1822 +302 +-1 +2362 +-1 +2741 +3180 +732 +3679 +1756 +978 +3314 +1521 +2336 +1370 +2336 +2561 +1421 +944 +2483 +3756 +3159 +1656 +2484 +2628 +334 +3192 +2083 +-1 +2608 +158 +-1 +-1 +2368 +334 +2695 +2146 +1196 +1747 +1866 +-1 +1218 +-1 +3983 +2300 +-1 +3561 +1999 +-1 +953 +2534 +-1 +-1 +3717 +-1 +1682 +3799 +1217 +-1 +4182 +-1 +4363 +1514 +1847 +1930 +1935 +2054 +-1 +2561 +4210 +0 +1851 +-1 +2913 +1543 +0 +2451 +1290 +2679 +3098 +-1 +2291 +1758 +3969 +2499 +1303 +-1 +1525 +1688 +-1 +2441 +2970 +-1 +3587 +-1 +2843 +2763 +1833 +-1 +1526 +-1 +2854 +2563 +1297 +1933 +1828 +-1 +1119 +-1 +470 +-1 +890 +-1 +-1 +3144 +-1 +-1 +-1 +2121 +-1 +-1 +-1 +-1 +1702 +1702 +615 +2129 +1022 +1319 +211 +685 +1417 +1417 +871 +1091 +-1 +-1 +-1 +-1 +-1 +-1 +1994 +2363 +-1 +-1 +-1 +-1 +-1 +2484 +1008 +980 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +470 +-1 +-1 +443 +1797 +3464 +-1 +720 +-1 +1529 +439 +-1 +1479 +-1 +454 +-1 +-1 +-1 +0 +-1 +-1 +-1 +-1 +1091 +561 +-1 +-1 +-1 +-1 +-1 +1573 +-1 +-1 +-1 +2299 +-1 +-1 +1405 +-1 +1797 +-1 +365 +-1 +1654 +-1 +2644 +632 +-1 +-1 +1572 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +1723 +1479 +1149 +-1 +-1 +2128 +-1 +980 +871 +0 +-1 +-1 +927 +-1 +-1 +-1 +-1 +3421 +1119 +3096 +1412 +0 +-1 +2193 +0 +1414 +-1 +-1 +1091 +-1 +-1 +-1 +-1 +-1 +-1 +401 +696 +-1 +-1 +-1 +471 +1712 +2714 +-1 +2625 +2398 +0 +-1 +-1 +443 +1065 +-1 +1704 +-1 +-1 +2405 +-1 +-1 +890 +-1 +-1 +-1 +-1 +1951 +-1 +-1 +1339 +2935 +-1 +-1 +-1 +1221 +-1 +-1 +-1 +-1 +-1 +1419 +2644 +-1 +1466 +-1 +1984 +708 +-1 +2731 +-1 +885 +-1 +627 +-1 +-1 +-1 +602 +1491 +-1 +2033 +539 +-1 +-1 +-1 +2227 +-1 +2185 +2381 +1579 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +-1 +1477 +1008 +-1 +-1 +-1 +2154 +1936 +1058 +2734 +1015 +190 +-1 +-1 +-1 +1529 +-1 +0 +-1 +1276 +-1 +-1 +1951 +-1 +401 +2907 +211 +-1 +-1 +1399 +-1 +2672 +3100 +3287 +-1 +4203 +-1 +3275 +-1 +-1 +7196 +2788 +4189 +-1 +2486 +0 +2407 +1004 +-1 +2750 +4745 +3285 +1571 +1938 +0 +1942 +-1 +2319 +4927 +-1 +-1 +-1 +224 +-1 +-1 +3514 +2971 +-1 +3419 +-1 +-1 +-1 +-1 +3302 +-1 +-1 +-1 +-1 +2089 +-1 +1003 +-1 +1870 +-1 +-1 +-1 +2366 +-1 +0 +1847 +-1 +2134 +4707 +2004 +3269 +-1 +-1 +-1 +5068 +4256 diff --git a/spoj/KAUSANDNIHA.cpp b/spoj/KAUSANDNIHA.cpp new file mode 100644 index 0000000..4d9380c --- /dev/null +++ b/spoj/KAUSANDNIHA.cpp @@ -0,0 +1,75 @@ +#include +using namespace std; +#define SIZE 10005 +#define ll long long +#define INF 1000000 + +int n,m; +ll dist[SIZE][SIZE]; + +void clear() +{ + for(int i=0;i +using namespace std; +#define ll long long + +ll a[100005]; + +int main() +{ + int t; + scanf("%d", &t); + + while(t--) + { + ll n,s; + scanf("%lld %lld", &n, &s); + + for(int i=1;i<=n;i++) + { + scanf("%lld", &a[i]); + } + + + } +} \ No newline at end of file diff --git a/spoj/KGSS b/spoj/KGSS new file mode 100755 index 0000000000000000000000000000000000000000..1fa75e14d8c5e24fa836db3a372024056f82e3fe GIT binary patch literal 13536 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 UD6Pa*to*(jE@rRi3G>VUZ~iJ@#{d8T literal 0 HcmV?d00001 diff --git a/spoj/KGSS.cpp b/spoj/KGSS.cpp new file mode 100644 index 0000000..1d28cb2 --- /dev/null +++ b/spoj/KGSS.cpp @@ -0,0 +1,101 @@ +#include +using namespace std; +#define SIZE 100005 +#define ll long long + +struct trees +{ + ll max,maxsum; +}; + +trees tree[SIZE<<3]; + +trees merge(trees a,trees b) +{ + trees res; + res.max=max(a.max,b.max); + res.maxsum=max(max(a.maxsum,b.maxsum),(a.max+b.max)); + return res; +} + +void build(int node,int start,int end) +{ + if(start==end) + { + int x; + scanf("%d",&x); + tree[node].max=tree[node].maxsum=x; + return; + } + + int mid=(start+end)>>1; + build(2*node,start,mid); + build(2*node+1,mid+1,end); + + tree[node]=merge(tree[2*node],tree[2*node+1]); +} + +void update(int node,int start, int end, int x, int val) +{ + if(start==end) + { + tree[node].max=tree[node].maxsum=val; + } + else + { + int mid=(start+end)>>1; + + if(start<=x && x<=mid) + { + update(2*node,start,mid,x,val); + } + else + { + update(2*node+1,mid+1,end,x,val); + } + tree[node]=merge(tree[2*node],tree[2*node+1]); + } +} + +trees query(int node,int start,int end, int l,int r) +{ + if(start==l && end==r) + { + return tree[node]; + } + int mid=(start+end)>>1; + int p1=node<<1; + int p2=node<<1|1; + + if(r<=mid) return query(p1,start,mid,l,r); + else if(l>mid) return query(p2,mid+1,end,l,r); + else return (merge(query(p1,start,mid,l,mid),query(p2,mid+1,end,mid+1,r))); +} + +int main() +{ + int n; + if(scanf("%d",&n)) + { + build(1,1,n); + } + + int q; + scanf("%d",&q); + while(q--) + { + char c; + int x,y; + cin>>c; + scanf("%d%d",&x,&y); + if(c=='U') + { + update(1,1,n,x,y); + } + else if(c=='Q') + { + printf("%lld\n", query(1,1,n,x,y).maxsum); + } + } + +} \ No newline at end of file diff --git a/spoj/KGSStest b/spoj/KGSStest new file mode 100755 index 0000000000000000000000000000000000000000..7000e4da3219fd8d120bb09fe8df48603b6ec851 GIT binary patch literal 13032 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 SxH9?w$(_8IJ!LX(_Wy57<8HzL literal 0 HcmV?d00001 diff --git a/spoj/KGSStest.cpp b/spoj/KGSStest.cpp new file mode 100644 index 0000000..453180a --- /dev/null +++ b/spoj/KGSStest.cpp @@ -0,0 +1,77 @@ + #include +#include +#define MAX 100000 + +using namespace std; + +struct sum { + long long int msum; + long long int m; +}; + +int array[ MAX + 1 ]; +sum tree[ 4 * MAX + 1 ]; + +void init( int node, int i, int j ) { + if ( i == j ) { + tree[ node ] = ( ( sum ) { array[ i ], array[ i ] } ); + } + else { + init( node * 2, i, ( i + j ) / 2 ); + init( node * 2 + 1, ( i + j ) / 2 + 1, j ); + sum left = tree[ node * 2 ], right = tree[ node * 2 + 1 ]; + tree[ node ].msum = max( left.msum, max( right.msum, left.m + right.m ) ); + tree[ node ].m = max( left.m, right.m ); + } +} + +sum query( int node, int a, int b, int i, int j ) { + if ( a > b || a > j || b < i ) { + return ( ( sum ) { 0, 0 } ); + } + if ( a >= i && b <= j ) { + return tree[ node ]; + } + sum left = query( node * 2, a, ( a + b ) / 2, i, j ); + sum right = query( node * 2 + 1, ( a + b ) / 2 + 1, b, i, j ); + return ( ( sum ) { + max( left.msum, max( right.msum, left.m + right.m ) ), + max( left.m, right.m ) } ); +} + +void update( int node, int a, int b, int pos, int val ) { + if ( a == b && a == pos ) { + tree[ node ] = ( ( sum ) { val, val } ); + return; + } + if ( pos <= ( a + b ) / 2 ) { + update( node * 2, a, ( a + b ) / 2, pos, val ); + } + if ( pos > ( a + b ) / 2 ) { + update( node * 2 + 1, ( a + b ) / 2 + 1, b, pos, val ); + } + sum left = tree[ node * 2 ], right = tree[ node * 2 + 1 ]; + tree[ node ].msum = max( left.msum, max( right.msum, left.m + right.m ) ); + tree[ node ].m = max( left.m, right.m ); +} + +int main() { + int N, Q, l, r, i; + char c; + scanf( "%d", &N ); + for ( i = 0; i < N; ++i ) { + scanf( "%d", array + i ); + } + init( 1, 0, N - 1 ); + scanf( "%d", &Q ); + for ( i = 0; i < Q; ++i ) { + scanf( "%*c%c%d%d", &c, &l, &r ); + if ( c == 'U' ) { + update( 1, 0, N - 1, l - 1, r ); + } + else { + printf( "%lld\n", query( 1, 0, N - 1, l - 1, r - 1 ).msum ); + } + } + return 0; +} \ No newline at end of file diff --git a/spoj/KNAPSACK b/spoj/KNAPSACK new file mode 100755 index 0000000000000000000000000000000000000000..2ecfb5ea81a713282c87cff5b2cb9fb39dd04290 GIT binary patch literal 11912 zcmcIq4QyN2b-pAeTmGYHH%T3*sEIW8>||z0Tax8uOGy1VPqu8U`pMib&ND?mNiU{I zf_$`PZ%&-a&B7{fv^DJn><0$o0o}hB3~N?wv23Td+O?RQ%~^n@gPN@!6}O#&wuaiJ z*1mJ!xfJAic;ch5QZ|A+Uy=h{1WyIn4!$Socd#C0tXOUQl;F|}E;j5UiD zA}ltFkBMbKYVm|+3Wat|g>!6Lg>@|FL0E&Q*=+;O?y!ug@MAWN9Bfi0q>%DkpfE@6 z@Z1`kRiO}m36LI@b&k{L)*P0&3e#MUxkqkrR(_dIFzK!LN*3W^8ByUhORG@TkLpHG zFWc>Phrtmara-jG_d-arL|xyt;xfM4=Edr;9pSK(VHGO9PePB%d8g!K!EVm4TD#P7 z`Bli(6%QxO{-%b96Y*^cGnpINHqzX*t*If9O$D~gdXs&UePVx~%t^JQ9~_nWE<7{_ zD1E~E!teg{8S#a-t~G1k*>v&~+DD)9k~}p5*|6*7a|>6E!~luR7ni%YwqIAxKu{S? zfm>IG*bJ4+Ujg4(1%C;6B|Gm`!T+TSzN3o$cdN)Bs3QO6D)P@)!OsC-D>jHzzQc%N z98-gWOgyq)JkKRaFZ65HipL&$i2AZg==$JrDye6!XvWfYq3=1WcN>Fd)-p1!iD))! zWQE?*yHAfB8HRiJwI)(Yqc_^0FzmF-DWBfoV>O$ptll5Z8Vwyu(`pN~9~C-qGm~xa z9+6RpNUJT z`*%42HX)PzCAeBEC}B$pUb>zJOYqY5q`3s=B~;oEm*8scqXex4UnwQ+S62zXssz_Y zzh9?~)fy}OLi^05Ra@zew} z*CgLUJT>9Wq~sqVo;q;myyUkNPfas(R`L%LPfap2F8TY3r>2-WCHW1+Q!~$`CI4ET zUkr?cmlXOzNB&z+Yx(!I(f^+9>g~8X8C(?>+SQAbD=E0TyDlsWgHZhOK>fxxAzn|R zLHe|9LkP6dIj@%g?$P^RCsWi6YY$zZg!yR*pO*FyU8Y(O1Qh=UrT1yi|4UD3XE%euR0ZI!ZCzfl~zZ0CRK*MAT75xKQ}P%I=-utQgBp9SRlk<96W z4;!8~`nbr|-uOK9ipD-5h52iTW==qd;^@I}TpO#|w1oM~wEUF|G-wN# zZq3hY`AfjA0n_sTUN}$4)%I!XENu+%uJ-BYnh=}TE>3&2Gvncvd)-C0_S8S`ag()K zG^i{_;Q$#Jg@GHB+SS@`q9cf4vQT2OQ2+9Bus~-SokB*l^)LSq$&R%bQ0A{n+m90Z zvO-4-F3r4l9X$=9Sdi^9l5)&_9C z{T(#IJ6is2Eq}F8OJy6we_uf}ziwyOhwQ$tJ+L#XkqC(qs>Etqs->9Jk4Bg`JACLS-e`tWu{J`>u{zJ{5&iwnG`I~L9Fn`y( z+URAMw(CajeOh>a^HAie$f3y75&iP`LWV!WdL-@f(nRaNA{C=bQJfZ)Iy~yk5k~wJ z9=SlX@NH#F<;fsO>ChrZ5G_`;K+&Q^`K`c1Yc8#?YL7q@OWKr3#QpRV^jaxg_jw-e zgdFLe|JnTf1i~&f(-6Yl=&fmlJ27r3(;PxS!p|a{1U`u{3_b|UFH)gEbgm z5ufY6)ywO~UCVuh(^-BRc|1r0OqJz@cmU}n?}NNtT)n>C-t~LxR~@T6B_7}K=z}{R zxSvdrOdFm{KcAm}h=7RK_kz21&9VVx43^U4c%DX`KAA ze4jU*@is@i!H9QDi`Nf1$hUawWV@|K`OdV9Da|(n;b5~ za!zy)hnqQU;!q}*yq;)neZ;?|uRoWxa{k6ZLm;@VDJQwmv!SLyuptl%ZnYEq+k>H| zU{i2ciF(DT2cxsu9bS~?L2vd}#67~Qh}RUyS*bA(M%`pZ`DH?l!*coMqEi2PFsfC* zm&>mZYW$SrD~sc-9A72Wd@ILSi}Tzs<@g#AuFxMI;Vs_pl*`u(HGj)-p9u53F2~nm zAqba3GVT%UL{~-pBgOTgRLO(YPpt#x_}zkzpHA|Kdy4lkrD-0_QuVv39LFr=d0vj+ zD-Kq~7k)37%d1sv0j1@pMtp#?OgYi|=)$VwEI+M_ZnXa?N57C|!Y3VgfN|&g+$QaB z5ED2d5~=mNN5&Vo=Lz6sU#j!~SnEe$avc zA>&Uu@PA_bumk^3#^Vm$gIZGghaC9*j3*p;8{=sQ9%bBe;LkBW;=uoe@!xjfR~SF# zz<5ku zfj`OkmmK(WjQ^zr{|m;?JMe#H{O=t2PZ@vRf%|Lia{i+O*BGC4;7P{cbl|TrKIOo_ z!uU5F_R4880xd&PCUN)B3ZM&zthB zO%odjDZjVi7`>mcvK{&IFrn6!)Jm-yoKmINxTW4{V{x)~LYed=*(XYqc~ zC*?n~XrCHjT%B{tD$#LiXYoGu78=Bl)3I~k`5nktx~H80em~mhv)pd-HxBIoHSl#Z zr}Eb&iF-wm+aJ?e(%Z;)9qcH-j`|Ju7UcabQyP4y3jPggfAKltClW8UV8=Jed>7-p zs^C2eUmh+~8UgMvLu}?1;A=6S!;W$Is$>v2pa2h{n z`8+W75AV|y5)D=CbaHv<;)~=|d3t1d7T5RF(vDZq{Uwq7Elm-LS2&l(GFH~g4GaWg zxN+ap+O2nX^z_1mu;3`rtzkVzt^&9a^ms}iOr-jw2|aG5GFd&E8xgV8a5`aFMm(^y zaaTiSA$`D1ntC*oi5}ODq?I`?1~SoMLyzZ%hmS+0gwr8um5J`%AL;6ewC)YW(rI`b zdaTaSuC!^yjALfj&||4&*2?5!7ANh9CK9Pw6vcy)K^tr`2a~A`{2Zj*tm|fqG6B1P z7d$7)9NZ5ho!djGpD_^4B`h5lj_B!B!i*hnXS+e985x?QAq-@T8E{ipfpMR5sV2t(x8p`{uBDqPm5hu~Z@fUrJRIpF`yu_ILz8wN8*x@u~pv1D>+$8gk&4XMtm zYDUQ=Qkp*d2{#-$iN3E#+)c~3TA2}2|GM-K8Ll^_}xr1FdYBPBbz$nTQ+Mmr9Rm(qA zSjZm-98}Q$^r5^?#|(3D2!{%TiXh}C3nGv`K5Rw%5n35L98xiS_+VtxB7mjc2t-;s zwpr0Z=5Qhj^yf@`wPVIbfViP(c1Q%`$CI#UhgQZ;Icj9G7|msjj`-w(g{lh zWMu=01_o1L@wo-wbTWfbN|ric4DnfPC=MfvvsLXwnXRGX&%_{xY@)+v3}r}JWF81L zK>+P30yrKHi3emS61JrDgT7ZNgl2hgYXl0a0D;vtNUm5{g)qU zrG)E(G75n!)mQh_78mG&GHLovTTX3YZ^DP5%0J-_OMwXnwn%QlkAj~mWwak0`An4l zq&o}_K0XGzxWf1uFWX7!8CMkdH<2>b{-sS%|vqp!hwFDnG-5?nkMpN?+Z}Pq4o7>!|#dzN-Ie z)^A~h%1<=K3X_ZzOFB;d&jF(*ruHRL_xvw1p!{Wa>f-*-BcW7Z`2)_g{o z?9UJ*ebs;JJ|N8clSN58;;hf#0xs1r-V3p#v(usP%>RNzU->_}SihHymyk36uOZEg zM>UhWPg37yI@`;se;vB@CHl&rQb$HXPI)K)9mr4-RsPCv;k!fq??IP_n$lN(MfKh6 zG}oVpW3fD{UK5V|l^C7yUh)!9m+h@vZb!IER$d`m6i7gRHO0 zsSGGR#gpHHFjfCkd@nS_is@$cU9qj +using namespace std; +#define ll long long + +ll dp[2005][2005]; +ll weight[2005]; +ll value[2005]; + +int main() +{ + ll S,N,x,y; + cin>>S>>N; + for(ll i=1;i<=N;i++) + { + scanf("%lld %lld", &weight[i], &value[i]); + } + + dp[0][0]=0; + + for(ll i=1;i<=N;i++) + { + for(ll w=1;w<=S;w++) + { + if(weight[i]<=w) + dp[i][w]=max(dp[i-1][w-weight[i]]+value[i], dp[i-1][w]); + else + dp[i][w]=dp[i-1][w]; + } + } + + printf("%lld\n",dp[N][S]); +} \ No newline at end of file diff --git a/spoj/KOPC12B b/spoj/KOPC12B new file mode 100755 index 0000000000000000000000000000000000000000..e3428194e16d64a425accd99c8c7c408cc6a1490 GIT binary patch literal 13664 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 VUjOL%ELH#U&6fU+qQc_({~OmPVhaEO literal 0 HcmV?d00001 diff --git a/spoj/KOPC12B.cpp b/spoj/KOPC12B.cpp new file mode 100644 index 0000000..560e683 --- /dev/null +++ b/spoj/KOPC12B.cpp @@ -0,0 +1,81 @@ +#include +using namespace std; + +#define MOD 1000000007 + +//long long int row[10000001]; + +/*long long int nCr(long long int n,long long int r) +{ + long long int i,j; + + row[0]=1; + + for(i=1;i<=n;i++) + { + for(j=i;j>0;j--) + { + row[j]+=row[j-1]; + } + } + + return row[r]; +}*/ + + +long long int nCrModpDP(int n, int r, int p) +{ + // The array C is going to store last row of + // pascal triangle at the end. And last entry + // of last row is nCr + long long int C[r+1]; + memset(C, 0, sizeof(C)); + + C[0] = 1; // Top row of Pascal Triangle + + // One by constructs remaining rows of Pascal + // Triangle from top to bottom + for (int i = 1; i <= n; i++) + { + // Fill entries of current row using previous + // row values + for (int j = min(i, r); j > 0; j--) + + // nCj = (n-1)Cj + (n-1)C(j-1); + C[j] = (C[j] + C[j-1])%p; + } + return C[r]; +} + +int nCrModpLucas(int n, int r, int p) +{ + // Base case + if (r==0) + return 1; + + // Compute last digits of n and r in base p + int ni = n%p, ri = r%p; + + // Compute result for last digits computed above, and + // for remaining digits. Multiply the two results and + // compute the result of multiplication in modulo p. + return (nCrModpLucas(n/p, r/p, p) * // Last digits of n and r + nCrModpDP(ni, ri, p)) % p; // Remaining digits +} + +int main() +{ + int t; + cin>>t; + while(t--) + { + long long int n=0,res=0; + cin>>n; + //memset(row,0,sizeof(row)); + res=nCrModpLucas(2*n-1,n-1,MOD); + res*=n; + + cout<zrq2F;=VRv1 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 literal 0 HcmV?d00001 diff --git a/spoj/KPMATRIX.cpp b/spoj/KPMATRIX.cpp new file mode 100644 index 0000000..3504338 --- /dev/null +++ b/spoj/KPMATRIX.cpp @@ -0,0 +1,157 @@ +#include +using namespace std; +#define ll long long +#define SIZE 260 +int arr[SIZE][SIZE]; +// int s[SIZE][SIZE]; +int bigarr[SIZE*3]; +int n,m; +int sum[SIZE], sum_A[SIZE], sum_B_1[SIZE]; +int BIT[SIZE*3]; + +int find(int value, int start, int end) +{ + while(start<=end) + { + int mid=start+end>>1; + if(bigarr[mid]==value) return mid; + else if(bigarr[mid]0;x-=x&-x) + { + res+=BIT[x]; + } + return res; +} + +int main() +{ + scanf("%d %d", &n, &m); + // ll x; + + for(int j=1;j<=m;j++) + arr[0][j]=0; + + for(int i=1;i<=n;i++) + { + for(int j=1;j<=m;j++) + { + /*scanf("%lld", &x); + update(i,j,x);*/ + scanf("%d", &arr[i][j]); + arr[i][j]=arr[i-1][j]+arr[i][j]; //calculating prefix column sum + } + } + + int A,B; + scanf("%d %d", &A, &B); + + /*for(int j=1; j<=m;j++) printf("%d ", arr[0][j]); + printf("\n"); + for(int i=1;i<=n;i++) + { + for(int j=1;j<=m;j++) + { + printf("%d ", arr[i][j]); + } + printf("\n"); + } + + return 0;*/ + + ll res=0; + + for(int i=1;i<=n;i++) + { + for(int j=i;j<=n;j++) + { + //storing all possible values of sum, sum-A & sum-B-1 in bigarr + int count=1; + sum[0]=0; + sum_A[0]=sum[0]-A; + sum_B_1[0]=sum[0]-B-1; + bigarr[count++]=sum[0]; + bigarr[count++]=sum_A[0]; + bigarr[count++]=sum_B_1[0]; + + for(int k=1;k<=m;k++) + { + sum[k]=sum[k-1]+arr[j][k]-arr[i-1][k]; //calculating prefix row sum + sum_A[k]=sum[k]-A; + sum_B_1[k]=sum[k]-B-1; + bigarr[count++]=sum[k]; + bigarr[count++]=sum_B_1[k]; + bigarr[count++]=sum_A[k]; + } + + /*for(int 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 +#include +#include + +const int NN = 260 ; +int N,M, A, B; +int map[NN][NN] ; +int sum[NN] ; +int sumB[NN] , sumA[NN] ; +int xx[NN*3] ; +int C[3 * NN] ; + + +int find( int val , int l ,int r ){ + while( l<=r ){ + int mid = (l + r) >> 1 ; + if( xx[mid] == val ) return mid ; + if( xx[mid] < val ) l = mid + 1 ; + else r = mid - 1 ; + } + return -1 ; +} + +inline int lowbit(int a){ return a&(-a) ; } + +void add(int a , int n){ + while( a<=n ){ + C[a] ++ ; a += lowbit(a) ; + } +} + +int cal_sum(int n){ + int res = 0 ; + while( n>=1 ){ + res += C[n] ; + n -= lowbit(n) ; + } + return res ; +} +void solve() +{ + int ans = 0 ; + for(int i=1;i<=N;i++) + { + for(int j=i;j<=N;j++) + { + int cnt = 1 ; + sum[0] = 0 ; + sumA[0] = sum[0] - A ; + sumB[0] = sum[0] - B - 1; + xx[cnt++ ] = sum[0] ; + xx[cnt++ ] = sumA[0] ; + xx[cnt++ ] = sumB[0] ; + + for(int k=1;k<=M;k++) + { + // printf("%d %d %d \n",sum[k-1], map[j][k], map[i-1][k]); + + sum[k] = sum[k-1] + map[j][k] - map[i-1][k] ; + // printf("S %d ", sum[k]); + + // printf("\n"); + + sumA[k] = sum[k] - A ; + // printf("A %d ",sumA[k]); + + // printf("\n"); + + sumB[k] = sum[k] - B - 1; + // printf("B %d ",sumB[k]); + + // printf("\n"); + + xx[cnt ++] = sum[k] ; + // printf("xx %d\n", xx[p--]); + + xx[cnt ++] = sumB[k] ; + // printf("xx %d\n", xx[p--]); + + xx[cnt ++] = sumA[k] ; + } + + /*for(int k=1;k6HIpTH9=Ck!XqK`SBSY4QdC&8SR_1R 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 +using namespace std; + +int sieve[100005]; + +void sievefunc() +{ + for(int i=2;i<=100000;i++) + { + if(sieve[i]==0) + { + sieve[i]=1; + for(int j=2*i;j<=100000;j+=i) + { + sieve[j]++; + } + } + } +} + +int main() +{ + sievefunc(); + int t; + scanf("%d", &t); + + while(t--) + { + int a,b,x; + scanf("%d %d %d",&a,&b,&x); + int count=0; + for(int i=a;i<=b;i++) + { + if(sieve[i]==x) + count++; + } + printf("%d\n",count); + } + return 0; +} \ No newline at end of file diff --git a/spoj/KQUERY b/spoj/KQUERY new file mode 100755 index 0000000000000000000000000000000000000000..1ece893f0eaf677bbb65160a2c28a2625d8e3b02 GIT binary patch literal 29336 zcmeHweSB2qmH*950x8BMXsifUQUrOa#3Td^mFgrga$^&SB(b)YUh*bKfYDMi-cOX4L@lct8Jsjc4E**r8Vs$+3z{e^W3@j z&K-ha|JjdMC+9xroaa2}InO!gIrq+;%iaF+8$Bs0nmRn%^%}LZ$NCs0{%Ts^?c9{O zV(l}UPn)b=u8jdE4Idv<2#PZWhoxu*(eaflat`@1>Q~0FOuM&PlBJ5ME>C<{7aMY|1=5zqe<|M65l<>hcnB8 z^$Ug?>c8*>TC;hYVXSIyZ83tO+V+rPXvR%zjb(vVjloc$ePL5=Fc=7GMp<=*(GX~t z=<14vO|30~>e{-dfS|ckzP6+)RNUAaH0o-DfugdO#?Yby|60vR#4jW~^r}}XL7VzD zM*ZqF#>(2pCatZ#u_d$;s@AWoHEKhFb&Vk{SYO++Qfm%0H@B{Z8U}TjvuLhuY|$2% zmz6HO^;Tm}UXeIA3N2@ad2?YB;o@FEIuoB%_D*s+`VaXKpIm%GGap8Xd$kzO=|}

I<~A;Dvv*FlLnDI9gPYr~Xk> zvzPTP0Y`?){bK^U&lC0VclvqwAX|QhIVU^lNPgzTVLx4v?TYMaZ1Q0CEG}K5Gt21_ zf6(vETn)0du=-g|uT199Z;wT`X8R+EP|OxtZdy5MITb0aVVT}osyCLUXXj@VGss&N zVQe=-t-8nSmCH5H)t)U#(~Y&OR9U(4H_}w4Ylv!dzWVX z&c$s=^17$2n$*ge*jRGNO(i;}Bim+BDn)aT@8(z}$DGU^13ANrgqngNBN3G%a|g&O z%`xvSe%f1tT!s{$tv1t{^gg@iv1n(s&dy)Z2mXUkD##hl*yxGfB3TT(!t`2*U#RhW z!Xh7J2+9@y8LO@gf0k61w0gEz2QXChTSosp)j-j+B>PX%g$zTs9Kd}-EVG^Tc81#M zTIItRUZ$a&e*Gk!HgQ%#5x}xxG#p}yIT#9ME~&w69dkwiEKR*K1ugDp$uDaQ1253- z(b&VV<*FgNq&3iHwPVf=5SxpvHN;rgFt-0`)a#)VA7nXp47BS(kN?0XlMfOSF+$ol zuo=qsb~VkVsyfzQkF=4SJy;yN1h)j4US%+TIu<|6Mai^~U@IVIAo;tTej*1JHu;r? z;%}qhEGG zAkHC5jX6OZ|Lm!+d;WgHBF)p`OTWTH16tDK4sQ^+dKRF5iwe z$m1{?=9F#za0I*ZjEW9g*dO#z198+Ij4Cd+khpN@+7dz)KVpP$x*hsLlr2yVS9^dQ*8@lnd2E5QA6eaP%kbhmsp^6LV(XF`9z%GJ(248eP3zwvf z`wf+LH)`qMeVfZ_=`Z3nmrGE=C0e6>quq@f{f-&~ijxE5TV5ZN2)a&WZXdO~8Hs-2 zgUUP(jBjiE)u7-}uaICj?hij`X^+e7tl+Y4MxpChxCCkF-(z>9hUc0^`#LdTToz|` zlI>?QE=9Qkkgg=l{^kAVVxg#f-a)W48S->t^)q zf~?E?*P3Y1PMx5T{-meWpKw%m;zO#+_VPY=w`ecNDf^f0CH^kaekC9kc|W{gG&s)D z?D-ICV{LyQaAacAkBYo+{)D)|zP>8!aU7W2%lqs7qWzRKu(+y63U~T_nOMCe{hVu6f|!z$4|M83eC@4{a0Sa O$jYk}oTg&!|9=1vpGCs} literal 0 HcmV?d00001 diff --git a/spoj/KQUERYOMo.cpp b/spoj/KQUERYOMo.cpp new file mode 100644 index 0000000..38a8454 --- /dev/null +++ b/spoj/KQUERYOMo.cpp @@ -0,0 +1,78 @@ +// using Mo's algorithm (SQRT Decomposition) +// correction : using SQRT decomposition not Mo's algo +// try not to use struct or vector when upper_bound or lower_bound is involved +#include +using namespace std; + +// #define ll long long +#define SIZE 30005 + +pair arr[SIZE]; + +int n,q,bucket,s=0; + +int main() +{ + scanf("%d",&n); + + bucket=ceil(sqrt(n)); + + for(int i=0;i=l && arr[i].second<=r &&arr[i].first>k) s++; + } + + if(lblock!=rblock) + { + for(int i=rstart; i=l && arr[i].second<=r && arr[i].first>k) s++; + } + for(int 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 literal 0 HcmV?d00001 diff --git a/spoj/KQUERYOtest.cpp b/spoj/KQUERYOtest.cpp new file mode 100644 index 0000000..a8a8bc0 --- /dev/null +++ b/spoj/KQUERYOtest.cpp @@ -0,0 +1,54 @@ +#include +#define MAX 30000 +using namespace std; + +vector tree[MAX << 4]; +int a[MAX]; + + +void build(int i, int l, int r) { + if (l == r) { + tree[i].push_back(a[l]); + } + else { + int mid = (l + r) / 2; + build(2*i, l, mid); + build(2*i+1, mid+1, r); + tree[i].resize(tree[2*i].size()+tree[2*i+1].size()); + merge(tree[2*i].begin(), tree[2*i].end(), tree[2*i+1].begin(), tree[2*i+1].end(), tree[i].begin()); + } +} + +int query(int l, int r, int i, int cl, int cr, int k) { + if (cl > r || cr < l) + return 0; + else if (cl >= l && cr <= r) { + return tree[i].end() - upper_bound(tree[i].begin(), tree[i].end(), k); + } + else { + int mid = (cl + cr) / 2; + return query(l, r, 2*i, cl, mid, k) + query(l, r, 2*i+1, mid+1, cr, k); + } +} + +int main(void) { + int n; + scanf("%d", &n); + int i; + for (i = 0; i < n; i++) + scanf("%d", a+i); + build(1, 0, n-1); + int ans = 0; + int q; + scanf("%d", &q); + while (q--) { + int a, b, k; + scanf("%d %d %d", &a, &b, &k); + a = a ^ ans; + b = b ^ ans; + k = k ^ ans; + ans = query(a-1, b-1, 1, 0, n-1, k); + printf("%d\n", ans); + } + return 0; +} \ No newline at end of file diff --git a/spoj/KQUERYOtest2 b/spoj/KQUERYOtest2 new file mode 100755 index 0000000000000000000000000000000000000000..fb7637cc8ef319a4cb1b343c93e3df74f0cd8366 GIT binary patch literal 21960 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 + +using namespace std; + +int BUCKET; +const int N = 30010; + +int n, q, res; +pair a[N]; + +int main (int argc, char const *argv[]) { + scanf("%d", &n); + for (int i = 1; i <= n; ++i) + scanf("%d", &a[i].first), a[i].second = i; + BUCKET = sqrt(n); + + for (int i = 1; i <= n; i += BUCKET) + sort(a + i, a + min(n + 1, i + BUCKET)); + + scanf("%d", &q); while (q--) { + int l, r, x; + scanf("%d %d %d", &l, &r, &x); + l ^= res, r ^= res, x ^= res, res = 0; + l = max(l, 1), r = min(r, n); + + int blockL = (l - 1)/BUCKET, blockR = (r - 1)/BUCKET; + int startL = 1 + BUCKET * blockL, startR = 1 + BUCKET * blockR; + + for (int i = startL; i <= min(n, startL + BUCKET - 1); ++i) + if (a[i].second >= l and a[i].second <= r and a[i].first > x) ++res; + + if (blockL != blockR) { + for (int i = startR; i <= min(n, startR + BUCKET - 1); ++i) + if (a[i].second >= l and a[i].second <= r and a[i].first > x) ++res; + + for (int i = blockL + 1; i < blockR; ++i) { + int start = 1 + BUCKET * i; + int tot = upper_bound(a + start, a + start + BUCKET, make_pair(x, n + 1)) - a - start; + res += max(0, BUCKET - tot); + } + } + + printf("%d\n", res); + } + return 0; +} \ No newline at end of file diff --git a/spoj/KQUERYtest b/spoj/KQUERYtest new file mode 100755 index 0000000000000000000000000000000000000000..453ebd9db83b0cce75e1dc8e019f6fc3db68f38d GIT binary patch literal 9040 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 literal 0 HcmV?d00001 diff --git a/spoj/KQUERYtest.cpp b/spoj/KQUERYtest.cpp new file mode 100644 index 0000000..5171b35 --- /dev/null +++ b/spoj/KQUERYtest.cpp @@ -0,0 +1,78 @@ +#include +#include + +int bit[30005]; +int maxval; + +void update(int id, int val) { + while (id <= maxval) { + bit[id] += val; + id += (id & (-id)); + } +} + +int query(int id) { + int sum = 0; + while (id > 0) { + sum += bit[id]; + id -= (id & (-id)); + } + return sum; +} + +struct kquery { + int i; + int j; + int k; + int num; +} queries[200001]; + +int cmp(const void* a, const void* b) { + struct kquery* x = (struct kquery*) a; + struct kquery* y = (struct kquery*) b; + if (y->k == x->k) + return y->j - x->j; + return (y->k) - (x->k); +} + +struct num { + int val, index; +} arr[30005]; + +int cmp1(const void* a, const void* b) { + struct num* x = (struct num*) a; + struct num* y = (struct num*) b; + return (y->val) - (x->val); +} + +int main(void) { + int n; + scanf("%d", &n); + maxval = n; + int i; + for (i = 0; i < n; i++) { + scanf("%d", &arr[i].val); + arr[i].index = i+1; + bit[i] = 0; + } + qsort(arr, n, sizeof(struct num), cmp1); + int q; + scanf("%d", &q); + int res[q]; + for (i = 0; i < q; i++) { + scanf("%d %d %d", &queries[i].i, &queries[i].j, &queries[i].k); + queries[i].num = i; + } + qsort(queries, q, sizeof(struct kquery), cmp); + int j = 0; + for (i = 0; i < q; i++) { + while (j < n && arr[j].val > queries[i].k) { + update(arr[j].index, 1); + j++; + } + res[queries[i].num] = query(queries[i].j) - query(queries[i].i - 1); + } + for (i = 0; i < q; i++) + printf("%d\n", res[i]); + return 0; +} \ No newline at end of file diff --git a/spoj/LCMSUM b/spoj/LCMSUM new file mode 100755 index 0000000000000000000000000000000000000000..4b3e251a8b627d722947f5702e647692f6d7f7f9 GIT binary patch literal 39472 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 HyZ!$G4kMkW literal 0 HcmV?d00001 diff --git a/spoj/LCMSUM.cpp b/spoj/LCMSUM.cpp new file mode 100644 index 0000000..23e1acd --- /dev/null +++ b/spoj/LCMSUM.cpp @@ -0,0 +1,141 @@ +#include +using namespace std; + +long long int s[1000001]={0}; +void fastscan(long long int &number) +{ + //variable to indicate sign of input number + bool negative = false; + register int c; + + number = 0; + + // extract current character from buffer + c = getchar(); + if (c=='-') + { + // number is negative + negative = true; + + // extract the next character from the buffer + c = getchar(); + } + + // Keep on extracting characters if they are integers + // i.e ASCII Value lies from '0'(48) to '9' (57) + for (; (c>47 && c<58); c=getchar()) + number = number *10 + c - 48; + + // if scanned input has a negative sign, negate the + // value of the input number + if (negative) + number *= -1; +} + +void spf(long long int n) +{ + // long long int s[n+1]; + + s[1]=1; + for(long long int i=2;i<=n;i++) + { + if(s[i]==0) + { + s[i]=i; + for(long long int j=2*i;j<=n;j+=i) + { + if(s[j]==0) + { + s[j]=i; + } + } + } + } + // return s; +} + +map primefactorisation(long long int n) +{ + map map; + + int curr=s[n]; + int count=1; + + map.insert(make_pair(1,1)); + while(n>1) + { + n=n/s[n]; + if(curr==s[n]) + { + count++; + continue; + } + map.insert(make_pair(curr,count)); + curr=s[n]; + count=1; + } + return map; +} + +int main() +{ + ios_base::sync_with_stdio(false); + cin.tie(NULL); + + long long int t; + fastscan(t); + while(t--) + { + + long long int n; + fastscan(n); + // long long int* s; + spf(n); + + map m; + m=primefactorisation(n); + + mapm1; + map::iterator it; + + long long int sum=0; + /*for(it=m.begin();it!=m.end();++it) + { + cout<first<<" "<second<<"\n"; + }*/ + // cout<<"size of map : "<first<<" "<second<<"\n"; + m1=primefactorisation(i); + for(it=m1.begin();it!=m1.end();++it) + { + // cout<first<<" "<second<<"\n"; + if(!m[it->first]) + { + sum+=n*(pow(it->first,it->second)); + // cout<<"sum : "<first]; + s=m[it->first]; + if((k-s)>0) + { + sum+=n*pow(it->first,(k-s)); + // cout<<"sum : "<cNZLX>_+yj_(8M~Hp#n(@n;ERj7&QBx`|k0_ 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 literal 0 HcmV?d00001 diff --git a/spoj/LCMSUM1.cpp b/spoj/LCMSUM1.cpp new file mode 100644 index 0000000..bff608a --- /dev/null +++ b/spoj/LCMSUM1.cpp @@ -0,0 +1,61 @@ +//precomputing the answer + +#include +using namespace std; + +long long int res[1000010]; +long long int phi[1000010]; + +void precal(int n) +{ + for(long long i=1;i<=n;i++) + { + phi[i]=i; + } + for(long long i=2;i<=n;i++) + { + if(phi[i]==i) + { + for(int j=i;j<=n;j+=i) + { + phi[j]/=i; + phi[j]*=i-1; + + // cout<<"i = "<mxAV1`f(n3&(&+b5sS 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 +using namespace std; +#define ll long long +#define SIZE 1050 + +ll BIT[SIZE][SIZE]; +int R,C; + +void update(int x,int y,int val) +{ + int x1,y1; + for(x1=x; x1<=R; x1+=x1&-x1) + { + for(y1=y; y1<=C; y1+= y1&-y1) + { + BIT[x1][y1]+=val; + } + } +} + +ll query(int x,int y) +{ + ll sum=0; + int x1,y1; + for(x1=x;x1>0;x1-=x1&-x1) + { + for(y1=y;y1>0;y1-=y1&-y1) + { + sum+=BIT[x1][y1]; + } + } + return sum; +} + +int main() +{ + int t; + scanf("%d",&t); + while(t--) + { + int n; + scanf("%d",&n); + R=n; + C=n; + memset(BIT,0,sizeof(BIT)); + // memset(data,0,sizeof(data)); + + while(true) + { + char s[50]; + scanf("%s",s); + if(s[1]=='E') + { + int x,y; + int num; + scanf("%d %d %d", &x,&y,&num); + x++; + y++; + ll previous=query(x,y)-query(x,y-1)-query(x-1,y)+query(x-1,y-1); + update(x,y,num-previous); + } + else if(s[1]=='U') + { + int x1,x2,y1,y2; + ll ans=0; + scanf("%d %d %d %d",&x1,&y1,&x2,&y2); + x1++; + x2++; + y1++; + y2++; + ans=query(x2,y2)-query(x2,y1-1)-query(x1-1,y2)+query(x1-1,y1-1); + printf("%lld\n", ans); + } + else + { + break; + } + } + printf("\n"); + } + return 0; +} \ No newline at end of file diff --git a/spoj/MATSUMtest b/spoj/MATSUMtest new file mode 100755 index 0000000000000000000000000000000000000000..50334fa6aa028eb647ea61ab47f4352948ce23e6 GIT binary patch literal 13368 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 OvSqxQm76Nf?f)CFsp+5q literal 0 HcmV?d00001 diff --git a/spoj/MATSUMtest.cpp b/spoj/MATSUMtest.cpp new file mode 100644 index 0000000..407cc52 --- /dev/null +++ b/spoj/MATSUMtest.cpp @@ -0,0 +1,68 @@ +#include +using namespace std; +#define LL long long +LL tree[1050][1050]; +void update(int x,int y,int val,int MAX) +{ + while(x<=MAX) + { + int ty = y; + while(ty <= MAX) + { + tree[x][ty] += val; + ty += (ty & -ty); + } + x += (x & -x); + } +} +LL read(int x,int y) +{ + LL sum = 0; + while( x ) + { + int ty = y; + while( ty ) + { + sum += tree[x][ty]; + ty -= (ty & -ty); + } + x -= (x & -x); + } + return sum; +} +int main() +{ + int t; + scanf("%d",&t); + while(t--) + { + int n; + scanf("%d",&n); + memset(tree,0,sizeof tree); + while(1) + { + char s[10]; + scanf("%s",s); + if(s[1] == 'E'){ + int x,y,val; + scanf(" %d%d%d",&x,&y,&val); + LL p_val = read(x+1,y+1) + read(x,y) - read(x+1,y) - read(x,y+1); + update(x+1,y+1,val - p_val,n+9); + } + else if(s[1] == 'U') + { + LL sum = 0; + int x1,y1,x,y; + scanf(" %d%d%d%d",&x,&y,&x1,&y1); + sum = read(x1+1,y1+1) + read(x,y) - read(x,y1+1) - read(x1+1 , y); + printf("%lld\n",sum); + } + else{ + //printf("\n"); + break; + } + } + printf("\n"); + } + return 0; +} diff --git a/spoj/MCHAOS b/spoj/MCHAOS new file mode 100755 index 0000000000000000000000000000000000000000..ce82d178e3b1f1a997192d763ca883d0784eefbe GIT binary patch literal 65800 zcmeHwe|%KM)%VR0G%7;yS0kdPii!$p5&{H8U6L$rBw$K{jf%a5WPwP2nQS0fsc6uL z7|=*<%iB^*ZEI;?+M@Nb)LMy14Yk@vYb!;n)Y`gfP*ZC)^`Ykdo-=3eoxOWE3D~Fa zKkf%|cFs9-=FFKhXU@#r-MuwfGAB7H$vD@qonr%xQhzNg?Vnr}T)uUj6|gd` zGp%EQ8HN7=rVv!`G#n7o8m0+f3ScV!=O-&fesX}{XgEQkEe*AX1gSmu6_B?IhHg_u z4J|8^5mb+Kjc(*3;9`EGVFoFL*XEg{)f=ft>QTM4yA?X^?#28@!+sKsmxj83)HnKH zF8wP{4xmKk00FCr|GJQP=~epYNHx7LUBpGe0Kd`j04al)hPvLTQBO#UVVJ+^LSG>5 zCA5p^pCM4XYkjJ=X36xtPt{gWsjaDRX`RxVKYhydysYMitX%Fl$tT_`=P%@zv>h{1 zBArjce=<4IFFWx&EiJY0-dCM;*Z*8F{>>k~UhtCu(ayqulA-#Qo}8JKnnXByosIv^ zUph8cB@H%FHg{JbprhE1a>Y? zz<+uId|LuJUrErf6B6(T6X4r{A7`CmS@$kR&n+thdeG}T_)qpJ9TUJ`_q7Xe37;)- z+o52dHb<(fF20!N=5))pm(?}Y+s%>6rig7@_EjtG1>t2i&5>|ZVQpn|bGX^Ei_7QP z)!`;Vm(MG#ZKw~IS1zdyE1Ey$y7^_18Ma;3+M1J-le?s{xuy!uG}Y8EE3PVw zuWYg-O_eo~=HjYgStb4iE6ail=9c9_52~GC)6i_AVmPn3z9v$X6I@B^wzk@h;il$> z`pVjx$ZC6KHZjjV^0xAtYiDy~K}!jl`W5^)tc5|o$AMtj_owIEo)rAie!{UrdHL|i}jkqY%Pz8a;7z}uCKCJ z)xh%b+M0&o60X<;mr3M93qY8v+zoEr6t1i*F1O3G?O@pqdqHAb!RyMV+2uKQFsPK6 zDKZ*-+X_yN)P#ejWetk?NR7e6j;Xk;3X_6nVvc1mtY1|FA6gJ@ZmA1fAXe!qirHDU z!me7r!d_ZgQ)@M15=EAZ;VL8H)|!Y_7p|*oScwT~Q$?B2b(OI1m4$`&)U0gl%97%O zLOVAr&v}=dHBG&*r~pS^R&I_}SWz*%pxDmInrc!IJd$~JCYXxvod00af&RT6+HK6D)ANLt^ks0@rtio{jP;H8m&FO88Yb+(iv7j8l-mTX-l^#|@*Ow~A- z5EZzr<16KqI=3J~M(1Jz&{*XlT)>}90}ln9*CYdP=BL>P-ptSP4Lr4>UjYNJb4j9w z3_J|uyh;uH@ebCqDhxd3F8a0D!0SwxXv+=!7|jgWXyC^h_*Mh2$Arjh4g5HRf4zY> z*Y{2Xf3m^9*}zk-s9#$R{HYoVxXr+yX5e=i_)i%4od!O`z;_w=(+&Jy1D|Q&dkp+| z1HaF}V-iOS^4y=%FAJeA3XdmFi&Ol5N2-o;%0;5L-WWqV7x{0^1LReJ+m{wtLc z8?4@JF26=)a?RdMF7Kx@VuRJ2&gB=VOfK4Marqf4lWX?&e+a~RyQxer*?W-7k5QRi zvA2iI4^x?3u(ylL-=p%$RNlem2dGRg*SnR=U!gL&T5l(pH&OXCDzD}8T~sF5>TTrm z?Nlb0>Rrs`o2g8$)LY8sCMuJw^afOUZKk!f6J>toyjk4-{AWY$uZ7xP?=LMc?(WK5 z6tF_wPwu#$K=*^=0#Cp2ZMox94ouH+S zJ=?nBDb@bk%bve2)3RE|Ekwm=JqF;0r$;>jRMOwMrCk;_%%Qd`td>!IUqC%a*x#ta zV9yP`H=_={FN3R33bn7<7wQg1N!RY+K>{7YgQ2Q@p^o6bPq&iYv)r~lldiwvDN?O{&EfWzfsWweP!(Dj6~%~!X70ZA zQ-s+Z>Nw@+flZ5{=Ku;xyA`rsBM-m7@7&A%KPahr} ze1hKXO2?Q+AE06;6k`{No{O%AHU>M%G|NE3`yKTDdc5zxgQhA~?cjH+n@OshV>kX3 z1jYWelGV-i7w%B<*xKt1k@@t#{VCnTany4AE7aIiDOyr@G>t}*xmc%vx?EVssbgzH z?F-jK2;kGZ0^PM%^imK+!_5xz0pf1!N+ZN#;(7>(Htt7K?_~5#)wL1A(3~n9&jnWL z3wW#QO*uw!u#kN&McfN&8!5yXman9Ta3k8yBt(ZB%dD+5EQm%S{t{K)ca|$cHglae<}QT@H?gW`AYFy&lKe5P`C0v@WFOmrSDgv?mJphnQ-v> zch+QD@XGc(YJqF}8U3|dD>}Gn^yg&iPe&k)STS8`RFhat9A_^UA>w?3v;*%ZxJ}#l zNp4c#*Fzm#iOiIT0LWn@`l)|X-<99~NWEv@`3~Nzz|t{qUv+5eXr3F9+`fwqH@qE8 zeF$&lmt5;6lF-gkWzGkKgVAqL`L;bYzpkIXX!Z?i+94{XtNGuy=5SI=)op7A$RsV- z?P?`wdlsd~2C#TPLB(CPEssWlQ+~DuvJ{p4ch|n_Kz)X&>|*q z{Wm<-Nx_XeNVT~lhM^N~3k`f}XTc*yI||qNsMiB=U1mIr=5)crKzB!PAqVbQ*agwh z;ZRyxNO@~L;oJ74cY+Ybc&S*1V6u)tI;L_YM-@VXT-Yzt zmn!MRmloPsn$B$PrD=WVsCV7b56SrLPojCUF09O2EkZrVny&F7hb)72_O;YdQjhCu zJQ7E!+bL->>`FJKdW>!h;6?Ge9gljBZf%D$(KbfIU0KM^WXz30Sb@V#6nPsuhYrTt zcjmFPy4M_NOxftSmHfRJT8z3gU)hO^ zqzz0>nywR6cpVjOh-)H)dK5{qJ86) zs;qns5VAr{q^>GOeIw)3hBn?_)EcyrXo^Kjv^Ouw{=1_ohj#=WC%llWVlHEN zHZH_}XI@_m+3UJmN>w;jw)L=lfmtG1m~%9^IwI^OtyqwZH3#JGD7j4E znc{~8Py)b6sWeSeWLS_?MG(bO#dSEQqn;C3??3|(PhF(Exb4tlRM>_JTTx-N$GcH) zn?!m*j`U;KJ)l-gLQqI2;dsxHA9C0`IN4&f6ZJvj6=SoKXCYDTL5urT?Lb<|#>FCu zs#K7bp;34A6J)3ks{}hcl?$JuEXTxhdQWQyWOYDRds3+V(`mhDafTG!_ShvzfjCVf zNi&%_xRYB%`7$IgtOc)$)EdX?4;33tW^`-ePC;Lctv0y#0=*Y-2VfVrP%=CAhBl5) zmKvMI2rDR2?+)&OxzGa$Lz}0w6iTI7|4XpH4|Qa#ig>pWqJK|(gGz}Vp|;?TbY1xX zkVuRbcLl8pEaV@&j8W|!CGCF{D?OnFNW)vXOw+?1D@<}VT)jkOijDwaii-fir72Z- zj5ky2%#}!Mr6g34Vcu!lCP}s1UYg$9#;bjI^uXIR+t%!`TF!-#7)xqy9*s#*jdKMy z-+r=JJEYAc`=eRbJP-$wr4RC z*qBK_)J*yVl=)~gX_NMh4)XcZ0cFmiW|9nmo=GqUdnAU2XOKuBX%+q2KmLn0dgcte zo~$U&vqf8!teM>VN#B{%&P+7Nlo$UUX(7*njl7qI7xGx~HUk@L)eR(?3O$2ej}lB; z$S~G)B(d?7pUb?!Oplv7H>;`BB`iGl6IqNibspmVQnqRf{X=wBQ|EZq91{6pmzb+N z`UZO7Gj(cN2-WU#r_L`_Z%I#X`2RX4f|+G-oT>9J5sA@RJn`0@IzJp}S3$+-C;DidpNhWC5aG2uT25_yCeKzP>&c^5dA$b3tXZ;1sbwb< z%MKcAL2qeGLi(`I&p}HZQB}w?s-1{VQmOsWJ7{a;DX{rGa>s*Mz|v-yOJAri6oEmh zFN&!5PG6vYa(=rp+|SeeqiQ+;i9VWMh&-G$z5j1RXi9YxY09BHMpM~t24FJSqovE6 zhpG(+jjA?Rj#{mvaFeL@`Fa|$(DMjpltK^_Y(u*!*X&EE0uiWBs<-#WDkV8 zY3@TMBre?njH~mWZ%ribdNanAsO{uV-dw0{O}`cS1WQy~U8u`bU~X)!7=1qbk@T4r zD>;*Us&li1`ixVxXw==b*Vr3mvQ8Q3$w6{7VyBpc)7|^J;8e6JaDAH$2;#<4nzrx& zOb%^(U*S*jV(JKggo`YElNK)SNWFmxTga90pGKc&@I9!a$4ACmX^<4BL43YSQl8#L zV;o(_OZStZJAM&42{ofm;>by!rv>Fr)T2pIE6QrA?2>JC2`>t?mjbCfdNCI%Z$wbT zJ_je7zm8@T(mlL(ys`s__H0j*9s+u=%)y=U*)mAo(SXw!7t5$fySDvkuZzw-`4E0I zN;`@Dwm&0Ka5mE&y&$$~1{W#B<1lC=Da#gSE(|J;=Xoa6+T9)PqnL7O@Zc)47Gr)a znC3AW^KD@IQc=Qy&7%xRj{HVNUnVWu_Jm|d>FXOEv@D}tcT>7rFnUv(8smTZgp53% zz5P_Q40lB2Q5~VgqHh!*LF$t;Z*(9p8-T%41$&uxEKsya@dO5rUAjBE0&<*lg>)@;+ce0 zj_94oN9c)@oz~bNuAt%&p7{Q2t|y)xTQ!x7ah~`!Twsz%#CqaOv<}C3;x`53dg8sn z_ zQisM}m__F0v#(fW)4DDV_1P4Wy6#dKcF3HJE!ld7p)BUG1D8A88ZfIIn-N z(jX$?=!2SdI}xRc50OezD;CLTrIcFHww-pxN{~LDW;yfe*oSyjim{_NObEnSbEnn( zN8mPwqsCQ%?%^a%+#ZgtDkVg3x$RoAjMJS(l!iP(D+C3-S{PX!`>-n1C$94-;Yk;h z`3i^G>D<$y_Lrhhk#my)CZKCwtiEyTzCuKGdertE)bX@6>Tm}21TOwt2K9N)vPV3q zYjvN77}Wn3o{v1J_rH3?gPI)Eo!CJ=k(WI>G>9G4&k)`_s0TSR5p(RImQz}ka8O5! zD8E6?*M8_--zER;;DjsQQPxO{-lcWzE94XUc81)BT0lgOzW}067)$ymRZCd!u%H_* znJ+DMf)I0#ajMglS~ zICR#jksm}pXx7x3f~@C1Flo?emN=HXX0e&4_;Kc45C|z-`>h|o5S=n?{%|=%-!{hJQ zX-A0}NII!2YILO^=^6ghZk>C$U!9>Ls>j|2SD-C3q+mGK>_8)1O?&cV0t>f797rs# z7^<)98hgj9)IHN^rIdcrf$K)**9KmJi&OBgql*bBx`T}eE6|b8wJa;LgzQG4=I{Nq zP|$I+8WW0b<`}$5`#+4Oy8MJj93>W#G39xahe$%)6;0nnW&LOqEm*Xq%LwAQt~*+( z2Sc>@CPuS&I(h@Ai(T)|dkNL`fgYVpsIZU?%k{u=aSvGN!!Na;)&p`aE-8^H=Za3R z{K3)bAfZ^N=Uk6MweILxl>2@hr_g=B^C&d(S$C!Gwa={U6B^pndBhRUx=oaKW2BB` z*8QGZ<<)Uyvu+F?KjpzRU1X?P_l~a65j*SV|CX(&Hwi~J>ryDH#Lv1he}znS@G)Q> ze7yEz?5qp;MKLw&cBpB=v#uAa)2#consu&$WY!_Yz|`W5k@=rN)T3FqRn0mCUOIe9cA4@IhSXIJ0c@ z%jmnBWqQZf9erCHU((utAujaJ@tbA4e#66|j?IsHmhHvSy)nyL_d7bdv+R0TCv>1Y zS_7SYW?7b3A&i-u!DOP;kJ%67#l+ov5Nn(jH=U}0sUIN_|0&JoarzoG(8&ilkgaI% zBeALmoka0@XLt1V=lQuaXH_1K{}B&Aw@fFDWL7kwk{LufJc7GE$PPR9(R6S{*VEsF zV;@~OxISIyP^1u4_aq$LneHg;>vlKWk&O`kba0R&KUOL_N~0rD4%^RRx_j&+qG)0Z z#oMIUDzH#@^c4ymmj?UQN$05O6X-P>!ed)>VUB0MP9 z&GO9OUfd`5eX|p6G27JoUz08LO6J*_L9!b*8*y)hv!5h&l$E6;gT#Nk;)kXV{%+v=>ZDOe z$c;(}j^$}M9cIeE`T|}JFLRmA7W0VtWRKcs1F55^vb<{)We}8=OZ^4P!XRTXw7_*o zA4R!uKT6ONB}%)Lc0IbrBW?}m*+i)rYOv!#1{-cA_AqVzNsz2Ixf4BoTtkAT$wCP1 zrKixrE@t z1j+-tqxet<@-yco;$|-LNyIR01hWY3!jWs=cXjo8u8w^hEag7s6&F-a|0P<9y}>%tsJPeJ z__96+C5MAO*{8_S(66|tc=|9=@k=x^6l}$*zkm&(PgJaUhODh4mi81hj&WAbjqzqh zeopyud{o>;?IehbCy5S67Zp=NiK60RrxW}&FkDo8NyV19s7R0T!{Xkk z_#Vc|H!9xa@|!X0Y2x>Zia!88J}O@22D*djTE7_mHewF2uN%4hnJ%;0VmUE;qaxkE zjW8-c?Z!B?-yL0y-HRI)e@9mmo~U@ATLUiB9etSQkT)v!;Hqb+sQ5J!EK%`IEWN`; z#fy3Lov1j0i}6uW`?4AJSjjVaP0c`)aP98s7%p=CEfiIUjd>@NzHZD*bQwM5rK^_2>>OX zfM-v^$I`saN6lxu!QQrJ!20|Jxcl3OdiZQeTirntfbL7==Lar;9!TnY0fc>ePefYm z#Ii}RvCbwW8`|lC-bd`{HMGPw16RV4i|`H_;wcF-W;-biX1<1-MVPi=G#!5i()*qz zPX7#9eBbQ|RuSn)B%2#>AE6t-rUT&%T99At3ndXyP5wIi+dUk;TprQ~JU!B`*~7D) z9%efB=bd2Oq4z_0G}cWemVp%bhfLD5l@vMdu2eF`W_hx57a*M>TQi zN08g1$)4jJxRzRn(HO51rF6xnR@EJ3@$>0iOOGizBX6^MLLEqp`Oz=z9y)?s5wFwA ziraaRrqV;cv~tnohIr1Qt*$GnZ*yl~QYRVFyx0BeQzYD6yfPd=V0(8*OAZiA25KH8 zbuQx~PxhEci_{TbDQb7YYS4UP`~fJmgoK4GAvQhHPgWDjO*t+$IaSJ`jsPK^ZIwp0 zY43&|V2>7Z+b*&Loew`>jL-G9f50CRrB=_TM-gF@I1_B%4H^0{GG?c!vcY~xg;moD z#P|}#w_vvM*q^)vmiQd%sEd{zRIDXu;b4q`>yF-lqI=O2;gczhd~7E3 zE6QXzv5S2ispLuE+xC>k+=gXBVHgl`uN}6MWU7?Tk=kkAYSZogP^TWW?o^->)bl$< z-vJru2-~~qS!&Rke(h@dnH;6Wp&oChk448#zaDlTPI+14m1_ER=@6eI{>}>vKf?q! zLuy9}wLWDo6yL&p>rwNqC#ml{e)H|(E@(6Ke7l>@qTTs+D;E>Zw*bu412bXh_#^-( z>yCb&&JE#e?Fg8X%da4myS^>b94Q!BS{PBEdw&jPY9EF3w2XTgjzd@tpIyimS*>&(Qy-6L8bMP}XG)h(@k-UW!M$Verl$r$#&Z!}NueaT9o|xro^*Amb%|^}X?=6C(;2&8 zA1GAeyd62*C@gP#li;!24Av8vmA9rmCH_bOi+mtP;GZdRHFm{6<*+6e)?3`Y;MmrC zA(AEPR@=cOJUck{j(b%qABsec`<3&k-40@ zF&)n3u9lOWSPz-WSjXl5qAo*xU2Y7sx-K`M2Q|j!qRKIy<>dt)P%G3dBx90yB_`dk3YF&mTQA4A8s zJCnv_A5?UazN_i- zE^d%(6qhr|WqieFsqh2a4K=t$@q;_wBQBL2rK}!3NX7ui4(gQu=0UB{gQ_PY7r)HePqM3O8K36Y3L?%E~NjI}wF(+b+*H0el$< z`Pl9FNATA8bW&U^g*=~?sp4AMz&4?=?2aDtw(_#u$|KY>)r$LNUHJa2*`Jwx&FuC; zN(xFgo_Bt3CceCD%liAiO4|Qg z(*9l%Bn+N%Ak_9$QfOvh%U{t_+VwZkm)^|&>}>m~PPfUwKShfc9AZnjv1c^ z%m+Lh&R+p|4d7OQ@U^d_uz*4{rW>8T13Z50IYEeIIZe;3e1s?FGCBkiH?M2`~*8hpz)>16ml?Qosp-jer{g>GOf) zRCLLEQrF<%KEMLN0l-GU3|tIvz)@5H@G-!}fY0FYbUol3fZG5g-Ov~CUci39Gxwq% zzA5i7fcb#$0#*R#;tHb`a6aH>z;%E-0e1uL1AGN=0Ptko+hpLI^-2Nr0UH4;0Jj6S z0=@va8Sovzoq%}=HTwVy00#i?2Fx65Sz7@EfE#eoK;O*Q1GpYA6)|KR;7Ndc0gC{m zfHwlB;e!zO0Zsz^C140J12eJ_@FKuYz|*kc>;$|Da35d=-~ixVfEnW~YX@LH;C{dg zz|%0-S^)V%*8_eQa2w#)0QUm^7%&Q$jsuKze8XTaU^ZX{ zU@2f5U?br70XqR-0o(!jCSVWX$#_VxA8-m_I=+$cPQZM?ZGaVkzXEIp901%5coCk% z+zB`na37!zH~_d4FcaTkxb64Q8}N9XJkd8A7QKvi0e=g)6EN$*;NU^Pvv8)EhHp4r z3pfezd#^xWKuW<{0fT^>0dEA{3D^m^4{!_M0ALqjMuufQ3z!es4_E=1gtf92Fb8lm z;1z&70j~wz2Y46Y0N}R(Gw=758!+x#{+<4qOdc* z_%+}Qfa?L@0o(?d(T{ck>j0yG{{@(KHpcsJ@Jql2fTe(!Vx?~dTm`rpFzxTK6W}Dk zgMjk^txUvcz)Zjo0YiY(-$j1`ivZUH-VV48@K=C6fN#79eF4vZANqb0;|Q1!I3KVA zu<)OVvw-x?ZCe350lNUd2Y3)L`2*;Cj%9`a2l@iO1Xv3AE?^_zCI5oHfOUX70q+9b z2lzPP0AN302G*H#K192K>j7H<-vZnUxOfnD0Yvy1%${iR3)7EZNjERBl3LS~&KP}c zT4&O+>4eA7S%K|?gBK|l{_D?gStO46zlT00p)e+W&X|m=#-6Y$ZLM|1_)9OEIuRNw zo+7~1hX)6-gj&|@G3j?E7oK>`Y&0zNYQVofl$gE_^qwK;-va&7A?SNR-vastfKK~M z-1c7w`kSC5G`jS8iarsjRP^sG*yXDxJ=m6#e6QjmG}&S@`0fSYe3LJ^n3;%P0{Sk{ zXPERRR}Vrb-CSD2BXevDeHDI+8Xw38jdXbw^;e}pr!8v(PG3qkrff)U8*TqpEI^}hxBVbl+q^^*%7`FlX02>&aIpgVgA zmx8{?q*Ff^C>;n*{TL0quLEDAb|!ieH=Fe27G@wlo&`Pk5yV21zQV142=oHb zvrKx8qE7_wTd-Ft=o0`__ZfO#xgn)3H6@*9AGMQ*`-q|+Czf*v^%sCXmgHEsxpq}@ zQnVcU`pHX>^J7VL`&;4avjy}Spl>kgEF*cX;!=LQ2Yj@5NF?WV(ErZ}|5?yq8$$je&|eus{%Gvc{to&qvwh433gO&;(9^Nk$~5Ul94ireqWZO< zPe%Ro&H9yY|2BZ0JB0l0LN74uuW{=?3wk-~`;8Cz_aV>=K#z%&G}jB13=&KIq|cx) z1s}E`?l_ky9+Hy>dIji*OghPVEmqDV@J;wx;`nt7=mF5DnsVyh{%irg9CW|_ke-i& zUI2QoS-;M$e?aOdviD)ouS0##hje@myY(j=hi|e5-ETc7JIn(8bD$4r&uZ{(1z#e2 zt^<7&=)>7_JNRf1pU7U%f_@|DiR^U<^a{`u*^54_P4yGmYclAKpeM3d3FtS2?&tqx zFZ!tOmq35b9Is-P+a$lJ>`r|5fvqwn$iAJB(uFBNAR z|J^lod!*N7@D)8dIJm^ri~L?@Uj+I? zL&(1c^e)g7`Rf+Ye*pRwrhc$Dt@xzh`&N2CJaP2e^^bbH!G%t!kw{{N>UToH1>ejCY{RGf2GU-N~SqJ*5py!zMTDShU zKtCUJ97VbPyvn8Tk@|`BdmZ#MP(P8KQZWG3{&04h48A$wOJt`K&_kdn(xVpi`JgAV z!v@eRKu=_c?V#TXdLlbK3;MMQ+NXJW2y`3tYfU@S{8d{S!t(q*1r2n9?`@M$$EiQM zcAo{l3Y>k$#DiqzIMm)E(7yuuCD>;<^H=47SxHI^x3>;_+xH9(-fOm}{PYfCW4`U+ zJN4(o>;EG7=78^QQ=X6hhru@nXSIp+pMbN=QqV7o*Z(Y2|03`$z!~pQ`qO-^1>aA> zhp_D0Bk0<51L)rd{XCPt*rjg={d=G%@~>w>-vN4}cy|c&Euf!k%Kxk@fAl!4(?iss z4Ely4>X(4t2|9q=KZ!Kle-Lg1J=>%k`;!fz(^)y()U9vi*V{qA6?DIOO!A)veKqJg zW_=@$90L8WA?lCD0m-@{+Mf)16X*q|d?WuX0sX!q+OGwj#uskq_Rol88>D{1{)2uy z>L=_!=(h~f{vpse4pDzJ&c4@!o~ZrFpsxfyVgEtjJVg7opnn&1zy4Fa*dX=0O#4uL zdQ?XN6`vjfUpDSes=a*IxqRdg2f$YgzOc!ctR@uE4}<;?=%m9(_Y~Yg`~`f&*>@KB&UrSmeHVeg4D>|y zy#@3|&n33+7SP`UJ&}DM2mN^5Jq0}dp_4c2?*Y*1ZfZFDrQ!}{KKS-{uMEXt!{aw^gWVaF!-U9s}=6a&_ctd53q(=mNKYb~&9`}L1AM`|eJOcV& z&;i{38vDK%LD&s?g-KU_g-ne?L=&_r~H0!u*sB{tPYx} zKSiM53VNdR*J{vj0ez0QomsK%YyjU^_9s5y*$(>mLHBEi^mrEZ?}45${{#JT(Ea8y z)gO&NJ)q~B{WQ+gCWHPO=!x=)642|u=zl&>_D)6nX)mk#sgsOzaf%g^7ZBfM@XgVD z`Tl&Q@8kHh3hiN;bNxVtKmPst1E4pG9IIeV`aQ`7V>0ee369C!m|8Gq(uPr?G1+$> z6B?7>cI><{fu=F}v&Ur59y6(6OeXliUoa+(e+Pad489q1XnL71{18~?#7|*O8uiRE z*4;_}O8v<()}~{qaQ`tla(|WnfG6#;QKeSc`#$Boq%(e!bPI0TQ|25_P1=xp34T0# zRPfL!>w{6?C0C)>An`qv6tS#(Qs%ssn)I&}@O@=e@YPY)n=yQYNuzT{6|?zO6| zn6i@g@!yXv@UaCxw!p_0_}Bs;Ti|00d~AV_E%31gKDNOBe+w*553mwnK2^bhl(lAh zKjeiQQWS^Ae^<)5`sLTw69Wu!1EV=<>VKxi1>x00e%e#o%Wmb z!XqR6!dHYg(3{Q40Rk4bT>LsXD!}j7n!xh~P8T>w;57o53S24hPJv$% z_@KZ?1wJkCcLM(+@I8UYjFt8Uo-c5^z&Qf15x7*~N`c-5OIqq9Et%7@ z^0Kn0OmE>*&gXNcXJzMQ&Ad?IGjp?Zre{yjp6L}4S5Cp{LVj|<2cK+}`{Glqh%Y|X z@qbfT3TDGzU;bk(JwIakkG1^#Dh0Dm`(rHsahCS$Sp4yp_WxM?36_onvG~zem-tOA z{zPl7&v>L*W2{bJ{8&rJl~_6HR<^{OSo}Dv)E9q}m0cAuS^0g6b+Sc|gL_{oIGxh* z%cP}Pr&>C0#o}=Ra`$2r#qU$BPgs8QECtbN;2uAIL{EuJrmz%iyw&fEM|8c{PmYeN zt`v&nsn*{HU5t7+8X(Dv*Pr5eGRCFLGcFX*32%AUku1S`*Owxee}qu1N`Pk6mf z>UATL-RK}O$vVl}?D3y5jE}b`wc)4dcxu3k_uDBfC*B_lng5hHKP(r#*Ke1xoOnO{ z6kH_J$FCZ}KhARfDud<1{($GeKJ!Zhq_CCGfAJXr!S57%>h(Dj>nZV{F*m@RvxL7@ z@cU-R;(G+&o~Q79$Amgj;7^jeCO8=jD9JzOa>ZXD#My#Br9j~`1>X+5pPa7=|9uxK ze%3- z^9mGR_v;2ELe%c=@d|&F@V5)TphV%d{(lDkB=BcSJcJqf^$+1cf41U(Sn#)E;E2Cr zoWjo#{C@#Y?cP|d@U4QUXTAx)`80(u7yQXckO-f5hQjOoZz}wa!e*oWPYs#-p|kP68`ZrUV2>UrzuFE-%Sm0{d1HUYmeZ^1r(m2wE&Gi&rJN5 z_`@l}f2ZJoCVr^xkctI{_=_r(9KNeVowwOP@n0wMqk`|6pz!or5_-)! zQS_M{;POTM7tebagp5_Vvbua<->mHf!y1x$y{=g(9 zzfky3gd-9E7bR|-C-?^hf6 zua6ge0UVq3*_@%|Xg~Rq;7^h`Jp9}0hu_&+~e3*skF_m8WW0Z;ZHoTB7tKlv}d?mkA_zw#HqR9$BOUpS=$w|IU;dQ?n1%KZRg}+z$KM?%=;#boIKjVD0j|*&C ztT59?GrSad>hHN%1-Lw*sMe!`zf9r@iu~Fq_zxBaxUAz$>IF(p`GpFvH`o`1fC|9L;@5tA>cvXVO0ka~m(K}) z`gw|9<9{Ofv}p?ewzNBEvXXOrroz)_uIY83;BS|_OY8qL!T-^!ADN6ne;#XRqTETnc(!GKYU7_Sxi~P}9O3tCv6#jF9zfAA}8OL#g|0?h&$$JyL zA^aCq1Q@O3#=K7{`FEBo{1~a!Ecj!^4i$ob7!846~7*rGvF}fSFa2I43RTe@HdLTl?eWuz^5DMKZ3S? z2t4`oC&wxI^M&wJk+V(wIal!Xuq3s+;2Oox&w_&11_svWbioV%?*;E&ANzqnNq9^! z8XYG&>n>1o^te@C-@~36hGX9UvCNiy<&yOwBlDT9E0S0^PzK zqVzd0U-4fn{4Ij_=1X@A-kXT-M2P&bZlc2fLhxS&-cSEAmnr^!(ese- z7YhDiY4;ex-w3>)oZE%Jex7O<)0|)Zg7?m&w98ey-u={c!M{+dN48-@P? zX}4F}{e$4&I77*~S@1PTc*s6yTofz+9>K3GQ~2@1enTj9@2+?SemiJ}Tm+*PSzw2h#r0o4-v2p5z}mTk&UcEqq@N z@MItQ@+R}uCj8#>jZVRz^=ZY=pV2_YPaqDE{8^_fytaR?;Jy2o&jRl^E;l8>w%z!-vOT5 zy)!+)oL?3G*M)y&fx_$YvZ|UQ&5@R+OS7sh+rFxBfn8EuR&Lu?b+{?Ktfn~830G&$n1=P-m&smQQ(t3OHZ@hQ zw!`(2rq$NcrpmgoUENYww;EN9629)V248k+u+A$C&Az%UtE#clvac(Pl;qoXO#^YE zn3rSQ&5_DTO%>OxsjRKJ8Ks7LyRyF8t`0XxnpoLy66*;kfaT`;=@Ra%zV#dbYf zp0i-~yr3PNUxZF83+VS(&R=K;L&6X$THw^add{4(V7XmByPzaUm0}dGjzvJXCg@po z?flvEiVIo)sZ}-gfxwj|#RY{G753CDnC!awb7$K2vicUgs-*wn4Td?|#3b)|Dx#u~_XaE7&5V`Ffo)!0;1 zA6Y7z*tuD`S<^hS^K7Mu9cikpi8L3J#ofUO24}FdH>?gWD4S}RVlb$FStKXdzJ|X_ z*j`fE9M=AkGZo(}Tpf1$QrcR_Hp)TQwO`rja(G!o)9PZwe|)>>>wnbtG)I;wU2X?+ zW;jUQKybm_vV1j2dCjXT8;h%gE8)Cq;2=jkx6xnfeGdF>+7g7RdKi#9I|O4`)KiFhvpxVP4Ay5jD#S zlLA&CTCE3A}B{>K;xzn2v)EnyT%Bm_I z7HL-6k;-L3c(hrYf?#R6T{;(&p=`QcmZ#inW?kiqFuJQFmEf{s=<=y z<59k|!{1~^$gHag)~eZuJ}eJcHrmbMTFlvD2g7gP4QYOghBN73+`2%qy$XYX@r?}f`|^_s;(_v8Mo}Z8b}sXm?JSej^g%~B0oYyuC2mGUAVfYvfhp~Ak;NA z4?l$rOSp|t%)t7h0_m_5DmI{*ncPrj_x1q8Z`bhxz-BWC&oAX0UT^p%=Bz!>l}U^5 zR4S^VxwNy;u|B|>ZEId-{DO@<8k*+&}i zV-{yxj1l7y?%;USIs6#I>!wXQjo^I9{hfv2u;#~FLGGdFT5Q&-)6NAD4=s>JBdAu| zO<_(y0|DgyvkQvtoUEyA{JiFdrr|x+FW7T>J43pcU(?Xcb1bhIdn1}VaWl+_iq0;h z*h%>@QXeh%A*&f#=JLkJpKkwvK+ZcqcO>thc^@e%a$aIw1b>iUVziBT}*~7>du;I5k&B<3lGDM}6k-1M3DW)g?g5@e)Rm<=OJi+FOOHijJMGEEIM?sjcML*uZP zH&yfBnb#VLQv42?wrB;kKSQQO{_A>>B*im1PowQICK>G=R40uHauhQ*II@_-hcxq% z)wBkcg*mUmF;Qzx#CvvCzpAcOCFjbD^cz-mF8iOJLZ&r_h(PXsOdSHis`>Guhaw0P zIu&a;?$8*`I;g1P15>P{ZQDJ)HYZ}y?*c`=Q6VS*n>zp#L>}$BRD?6DyEai`}@0HT^XrV=RY39`kYC{%zgK?1F3jiD(VT#Sor0z z9%`FsNyGVz-#llZb5Ec6EC6Dsaw6#*GRGVq;2ul)HYbxjPi9nBuRQ84VJ+WgK%|-z z@bn`(VvP%fGS7|7`rkKs>gv4v8`^XG8TQC`+1TrH!e|boXXs6*ksQwC_UosQZn_h6 zy5pYp1hFlV)50OA=x_}hBHiQ+PED=3cQ16%g(;4c1(nbaGg>~q;Cn%eqOrZuNwF(X z4h1Mzb2-6^Y*L`_IM@@

zSBBrHaE|0`R9rRrxX;JrdU#yl9qNeOO&Ei8pN*A6op~6w{Q`p7uDb&>?%NPp^eO~f zVd>)QPu%JJ=e8zp0v$L0GMGC0;aV8hq{mwtn*FZff>R?kVc4f3CKaTW#z-oT_^{W{ z9p>UB$vxdQqomL34_?oN&#|3{3~6oZM*}ux&-1Hwac0_A~U)UVhr=6!U{@nrFjMwfX zK=R<^@bTL@5u=*`eoEn^4g4_1NjTJUy&ro_!DES|2|A8zHP7SBv;R1+Fg;xdxY+#B z$*qoP<7vuuLP5-y!1EA)}(_0#G2pgu)GK~26p4LcAVx$A`0GJ;~RoG3dZM%v#BY*VEbWQ(xQ49IT%8}?% zutN7yFw&v6VHG_l)X-92J!}T)XEo#i{H)gu$Is)=&3I`iLsqS@tCp{@msZx)y3@$} zDGc9m=HGkcXdz~KM#_ngz0fB$>W}EU%D)x!fYGq8{~?p!Cz%d7#8Io9%fvjzW@^Q+CK6uy2?X_3P3T(E9z(^@gZr#y=z=gOph69$Qs!*6|zDOz4jeV^BghN zmQ6w??TMYwDe-Y%tDGIeap1M_dkO3Vv7FQCxT5i9k+v7~p(YhJ^C)r-y(}25>e~kM z7%qMlaqq?WtN>mBn;+5bkR-z~r+>~xaKgSKH;wD7p**g1b+7T+3HC+Y72^r>;yN6i zVlE)$$s;mDZ>-hR60x_P7y=|oJ{y;#3j8CQwa#%n+}-!74zurZ*MAA8mA;!8YMSaJ zZw{BmbUzapFg#lY{a~MGLlyf;rz3Tf$}&3h&a-{|1ezV`8Tb*0Pwxj$+;gVbgBtIm z?Vf^rtf5TLj~^lBr;n;tEsuM!n$~djiN7V4)#}lQ*e51Dv)M1+9o-H_-`x%68QOb{ z(?in@WwRR_A;4hUwae7Ug=RE`SB9JLp}ygQ=F#;*JvXW!QblC^$T^xZSL4z`y}W|W%0?Q1@POcay5d-io%t3#jKLJlzQf7Rw%%OD2~(1_$;s?2_A@@i?cF%wqr6gT`WIXsV|cA=mbukznRBx@=*u= zRA!=CiReG_OM{~fHF~d$3HYCxCByC}$zA!>(tYT}=UGB2m5LjTNo3@C?qWkLqbLzt;Ja4(7$h(eBCogd5?^e;4MQ>>JB~-x}jThQ_v1 z9%wnDj|d-S&_}97dp({%VS3&xHo*Bk=7EC+_o|+b8SrE$-599nI_+hxt#%{UsRnF? zYa*-dmD!$!S{^9Yk%bb|%IX_inj<5-A@;YPIRiXL6260l4&#dn=;kLu{-ur<$r?OI zhk4pp5*IuK?Fsh_>sQqvVObEy2cPK_udonb0g@TQY4U z35D5@BW+OUpni=SX^gva482+&-5Cq7TCx=z$xy^DU^*W+rlil~3x?hB(OTm(F;nG} zDMxlj{}G}GeFzHPaYR$!uQ}Qz>vbgkf62M54g3I+ge1s(2 z)M#bZH$=i&_~hpld|`o<@SQJNOIm7btEbddTUk_EUfI0d%Bo&n4|xhkniPeSeLN@< zQ?Nm63fERr1$oz48?mzZmNyG;vz9fWh)-zXFMSCQm>M{&XN8x`*X}H@h7etX^r|Xb zp8ZBYaKFyN)Hm`d8T$Q=Rj7!DE9+{iP_H3E4FW@}Mix%3tt@=MOdY=ON4|yV=)oDN zim!&Vl0`&*a)96E3u1!cH6UK|buJ3W;=it6o*Y2Q!tVt!urd{J{-!$b)SDatvwkEw zz=Vj@pU5TmkGFmiNblh{sC4_AlLO4WSrGbr14l8|{hcl;TJ!Pd1pL?a_a+BW!taO+ zB167k>KNdt?`cHDD?1KWsp(v(!Wba<~SYyb^E&h-N2DuNk4k&-(%W(qAKg}fm0==tA0jaRz7*YG}+&HDQHoz{+3j9OnU!dw2Dr@sDukWQ(;$@xMsB|*2V<$cprU;kdz z#6^nZIL#=~>;K=C`g;8I?@DD${mfzNKjf*ee}Ae}>L1VpBXYd$@AA~wzf+Z6r7F~( zDHR2H?e_~$ef@h@Th^)y+ohfc-u7PxVGRD0Z_`Wveo%CyDtqniZT}6h(NO97`uDL0 zq`sHmTmC!hlK<%X&hKcEW8>xJ_m&61qvs~`-@TXses_z3)i3_5he6lZ{n`vRvwi)$ zTm$#0`kG&rTzxb?36;(I&hK}1O8dH^KwVG6<308D?|k)3eXXY!qwDE%I_eY7vERLm z73p3D)=nR--pJp~n3DRwcG5rFgSVu9o(E67^wMw~-aBnGMg95f`wE_=8HMI4vK&44 mjOtdtw7>jpg(WZ*|8@U${G<8p*Z$TWs@_#sDyaW@+y8%ftMPmQ literal 0 HcmV?d00001 diff --git a/spoj/MCHAOS.cpp b/spoj/MCHAOS.cpp new file mode 100644 index 0000000..7e3a452 --- /dev/null +++ b/spoj/MCHAOS.cpp @@ -0,0 +1,92 @@ +/*why use BIT? + +1. time limit is pretty small +2. the strings are atmost of 10 letters +3. we can see that we need to find inverses +*/ + +#include +using namespace std; +#define ll long long + +ll n; +ll BIT[100000]; + +vector >v; +vector a; + +long long func(string &st) +{ + long long res = 0; + for (int i = 0; i < st.size(); i++) + { + res = res * 32 + st[i] - 'a' + 1; + } + for (int i = st.size(); i <= 10; i++) + res = res * 32; + return res; +} + +/*bool comp(const pair &p, const pair &q) +{ + return p.first0;x-=x&-x) + { + sum+=BIT[x]; + } + return sum; +} + +int main() +{ + ios_base::sync_with_stdio(false); + cin.tie(NULL); + + // ll n; + cin>>n; + + string s,r; + for(int i=0;i>r; + s=r; + reverse(r.begin(),r.end()); + v.push_back(make_pair(func(s),func(r))); + a.push_back(v[i].second); + } + + sort(v.begin(),v.end()); + sort(a.begin(),a.end()); + + for(int i=0;i=0;i--) + { + inverses+=sum(v[i].second-1); + update(v[i].second,1); + } + printf("%lld\n", inverses); +} \ No newline at end of file diff --git a/spoj/MCHAOStest b/spoj/MCHAOStest new file mode 100755 index 0000000000000000000000000000000000000000..075350796fc04339c34a47dafe3f01d493c67183 GIT binary patch literal 65912 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

LZ|&az3A=?z3`RCbp*F2 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 literal 0 HcmV?d00001 diff --git a/spoj/MCHAOStest.cpp b/spoj/MCHAOStest.cpp new file mode 100644 index 0000000..1b4ae35 --- /dev/null +++ b/spoj/MCHAOStest.cpp @@ -0,0 +1,78 @@ +#include + +using namespace std; + +const int N = 100000; + +int n; +string st; +vector > v; +vector nd; + +int t[N]; + +long long func(string &st) +{ + long long res = 0; + for (int i = 0; i < st.size(); i++) + { + res = res * 32 + st[i] - 'a' + 1; + } + for (int i = st.size(); i <= 10; i++) + res = res * 32; + return res; +} + +int sum(int r) +{ + int res = 0; + for (; r >= 0; r = (r&(r + 1)) - 1) + res += t[r]; + return res; +} + +void inc(int i, int delta) +{ + for (; i < n; i = (i | (i + 1))) + t[i] += delta; +} + +inline void parse(string &st,pair&res) +{ + res.first = func(st); + reverse(st.begin(), st.end()); + res.second = func(st); +} + +int main(){ + ios_base::sync_with_stdio(0); + //cin.tie(0); + + cin >> n; + pair P; + + for (int i = 1; i <= n; i++) + { + cin >> st; + parse(st,P); + v.push_back(P); + nd.push_back(P.second); + } + + sort(nd.begin(), nd.end()); + + sort(v.begin(), v.end()); + + long long ans = 0; + + for (int i = v.size() - 1; i >= 0; i--) + { + int whr = lower_bound(nd.begin(), nd.end(), v[i].second) - nd.begin(); + ans += sum(whr); + inc(whr, 1); + } + + cout << ans << endl; + + return 0; +} \ No newline at end of file diff --git a/spoj/MSE06H b/spoj/MSE06H new file mode 100755 index 0000000000000000000000000000000000000000..0c5992224f4e68f2fd8a5d65c56dece613454555 GIT binary patch literal 21432 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 literal 0 HcmV?d00001 diff --git a/spoj/MSE06H.cpp b/spoj/MSE06H.cpp new file mode 100644 index 0000000..f8b12cd --- /dev/null +++ b/spoj/MSE06H.cpp @@ -0,0 +1,62 @@ +#include +using namespace std; + +long long n,m,k; +long long BIT[1009]; + +struct node{ + long long first; + long long second; +}; + +node arr[1000009]; + +bool compare(const node a, const node b) +{ + return ((a.first==b.first)? (a.second < b.second) : (a.first < b.first)); +} + +void update(long long x,long long val) +{ + for(;x<=m;x+= x&-x) + { + BIT[x]+=val; + } +} + +long long query(long long x) +{ + long long sum=0; + for(;x>0;x-= x&-x) + { + sum+=BIT[x]; + } + return sum; +} + +int main() +{ + long long i,j,t,count=1,ans; + scanf("%lld", &t); + while(t--) + { + memset(BIT,0,sizeof(BIT)); + scanf("%lld %lld %lld", &n, &m, &k); + + for(i=0;i= 0; i = j) + { + for(j = i; j >= 0 && arr[j].first == arr[i].first; j--) ans += query(arr[j].second - 1); + for(j = i; j >= 0 && arr[j].first == arr[i].first; j--) update(arr[j].second, 1); + } + // count++; + printf("Test case %lld: %lld\n",count++, ans); + } + return 0; +} \ No newline at end of file diff --git a/spoj/MSE06Htest b/spoj/MSE06Htest new file mode 100755 index 0000000000000000000000000000000000000000..6ed275490f95df06a6726876388fb8762877215a GIT binary patch literal 21152 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 +#include +#include +using namespace std; + +typedef long long i64; +const int RMAX = 1000009; +const int NMAX = 1009; + +struct Road { int u, v; }; + +i64 BIT[NMAX], m, n,k; +Road roads[RMAX]; + +i64 read(int idx) { + i64 sum = 0; + while(idx > 0) { + sum += BIT[idx]; + idx -= (idx & -idx); + } + return sum; +} + +void add(int idx, int v) { + while(idx <= m) { + BIT[idx] += v; + idx += (idx & -idx); + } +} + +bool comp(const Road a, const Road b) { + return ((a.u==b.u)? (a.v < b.v) : (a.u < b.u)); +} + +int main() { + int t, i, j, cs = 1; + i64 res; + scanf("%d", &t); + while(t--) { + memset(BIT, 0, sizeof(BIT)); + res = 0; + scanf("%lld%lld%lld", &n, &m, &k); + for(i = 0; i < k; i++) scanf("%d%d", &roads[i].u, &roads[i].v); + sort(roads, roads + k, comp); + for(i = k-1; i >= 0; i = j) { + for(j = i; j >= 0 && roads[j].u == roads[i].u; j--) res += read(roads[j].v - 1); + for(j = i; j >= 0 && roads[j].u == roads[i].u; j--) add(roads[j].v, 1); + } + printf("Test case %d: %lld\n", cs++, res); + } + return 0; +} \ No newline at end of file diff --git a/spoj/Max_And b/spoj/Max_And new file mode 100755 index 0000000000000000000000000000000000000000..596738bac13812e9d3c2af578ed782bc1663132c GIT binary patch literal 9064 zcmeHNeQaA-6~DHV)LlEr?b^|gskO!m?WVjrZJMP_Y|n|^zD!9Q8mB9R^yS5Nl1Cjo zvY)%OVvv%q!jz6M*i-~a6Xm0zp%s|Ww4uf&Q@a5|8(N_fAcfJPWFIWkMipsW%{lko z^Zfj5!z3jB+Nu1`J->U-x#!+@?|t{4^oxIWMKzvpNMx6SGeZyZ=_=~z_ zkWiM9u`qv@IO-zxykf+$JhGIFz-3+_Ud!%NV25#jQ1T1Ky`sHZ_z8pi-g*uPcq!#RNUf8Y2O_qz+f zJ^jedFX?-}{%G`1-FG~R`pe))?~O6=2m)eATOyab%u@B|lK`)*QiX8^s^A-I;70+k z=I8e{@Mmh^+iLiKu7>`e8v3Ve=<5QXXpo^~BY00)BObf$Hhed&OjUUZYJs_7}VtE;oUWB-12o77^K)vdPDR%ts7g*k;iz_EnCIzIPslwABDpIv-j7+W5O zCG26dSPA3;{ci!M^|DIWVF#&WuL~@--eXt8mCb6ksNyIf>z{3gBxM3}}F z1#CF33!=?7+`iuhZMc2Cx7l!7Bj`)E;j}j)uGny~Wg^U!$=AKgiTb}T4KU@wf>A$r zf`iX`XLvO$ZvO*R6*s*E&&G{1lu#bQ%K6zM(5By@j9r|6fy=)}8HZxNz~!e=#-%@h zmdig!8M{9J7?*#7GIn`>ip$?a8M`_^!R2<4ho(U0)ci(g{>1}I{$*wI%0f@H^I}0> zDl_Hc`4_y%F8*?f%;xR~!*_-nH-;H|Y8X1+r!)-!QzjREO8%8Y>z_hb*xeQV(^yfQ z1?6MhfBy{ja!4Zi9M<{qTWNChums`q#bzc9yfZ(4hE2|NIfK!7{w5 zKwLRdw`ns5pN}jy7nGBcD@y*tbQFew8_xaoTCsQ{a^+-CG2eIP!9wFBg<}QdfO4{L z0d(h3_g+i)DCjCDA`6qVE*y)Su&hkZxll{9w3dO^YmbXMcX{2L??c^`8S;tl#kjI< zIgbveQ45$oKO^Gy=O1`4pIe-K;5}FF<3}G@EEZuzHcV?Uv~$mZkEi!T=^TpFxS!2k z1Z>K*K8L!~IKAecz`>g-y&C?0L-&UEh4RHvUntsja?_3V0eD#_n>GON?aW{8%wOu- zf+Ocu&cE-OYXrZ_gKrpt=0DT>?aIH}mA@JW55-k~Q6^_x%8u7^uPT$zdOy=2`fR8_ zbReY8OqCja8`cH)2O79UaKG3TXPc7AcmN-~1Pjcy-g9Rd>T&%)_a1Zy_}9TTzia*SCEh955iUe`0`;gL1pNur_4#-D*4)#$?0)YAyL;W8w{E-TW`t1(<9-NY)L&rzgn;Og2x*aU)$u8Zl9d-wS|1akZ*IlF93R=-|qAB^91h6W8lZW@1n~O>BABD za0JRnU<$sANRPv35@}4xT!4qzZYnsQg^-q;jQJa6UJ}GQ~~p!J&{7$*?W){xG2rTRNAi-31}P zTqg_5{|}>kth2S9;=S$@d`R#^f*%+BQNe#GxYN(Bj*d?RHunwYQbsPYU22hnO|3aD zHGiSGRSLF9JGPj3U~90sHP{;5;dD_Udtg?!x#cRj+qz%dD?RYGjjH-}*8D2huV;m- z`VEZcU%CDgR_(oca5jtgU9P{B(Yz_gue0V?IljzVXXW^E7OXPv9(FxDTNU?Nd7W}U zjn=v?$Nj8Ftmkrkg_V~m$5*nmRrPPM_JMN!RgBhuIlh|VG1y5ScB7SlvDbNEb<(}7 z9Ea5>)^|C+mi1J{*D*ZSJITXn_bS!kHdDvmg2QMz;lAi%mGR?#=w?2);CL_S8S$WF z|CI#p+?T`Le<@Ddr+YbGIi5#^AKLFh`(oegJs2e*KK=uVZ*9N1}EMP{#OE z;yc36fPgIsoW3u#|JE9}I;e0#re*dz87xb*lH--*i5k`7+`t2?oS)6yPvv~r#r1Ef zn1}lXPTwzz=pgq~IS)_4Mjn8#o^xIqpkFP2^kt6w7~WQq=sWNoD6E9>EQonRXZcg0 zAK;qhj~~^*ALjlm*Yz_TFZY4cYz@3v17FMIWNgAQpYP)1Q0f0Zz*j&Ph4zy=p`r^v zPK(di@bf6({wm{q8vVQ1R;=GA1dcaKJN*i99A``uASL*dvEOn3rS&CXcA4vwRN}ob zK7O{2jX3z}s%0|T zVKtF5GKbkvMjK72@!aU>VKA{tDrg#Is@>YS8cM~b*w`54`+AM8HdWQrs0Lz7vx*5j zLyvJoT}$dmK!PNsmWo53F>7RUF)jynovFLJ_Oyq(z$7=QcB(wbr>Z;mhPoqaWOo=- zmV6Yb4EbXDLvh9|BXP)hTFrNoF> zCnIriLXv4}E*R5-%AbpY8Z@Jg>M@8RZJ>KVu=f&-6_a4;j>2*jo5cUX@SFi#mGzyW z^E3VZjqYF61nS!9qafg&2ev6rQMW8OXDnbc>q+}N0nJdb+tYd65Dsr4MZul+VZg7# z9f{gM<(9c7es__`zTOnAd!!KAZYbcLkn9U?86@~SrvL(?!+5X6qVqnt4=}tllKrel z1_{2K;vz}+P7cCDxFeArfD+#M$e!*CFN==C$%GTdPkO`;LM`4QNoI7f5C%QM9^*$H zieJDC&w)_XheUY;zW^v7 zVAh(kQW<$3es+7h_XLIg1S;8x@(jek33YaRx*wet_7pFE7r?r$A19r~Eh2!4Ro^ zx?lP~p#49<7GE{lQ{IIBU%;&BznBhIJk+mKj`r!kx`>?ua>h$C@i#%o9=~<36%F)o zFQo_B5npuJ(>I00>d-&Xihe`x>1X +using namespace std; +#define ll long long +int main() +{ + int t; + scanf("%d", &t); + + while(t--) + { + ll a, b; + scanf("%lld %lld", &a, &b); + + if(b&1) + { + printf("%lld\n",b-1); + } + else + { + printf("%lld\n",b-2); + } + } +} \ No newline at end of file diff --git a/spoj/Max_Power b/spoj/Max_Power new file mode 100755 index 0000000000000000000000000000000000000000..2f02ff3afb2ae0e414bb964c5dc47263065fe8d3 GIT binary patch literal 9064 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 literal 0 HcmV?d00001 diff --git a/spoj/Max_Power.cpp b/spoj/Max_Power.cpp new file mode 100644 index 0000000..1167ae0 --- /dev/null +++ b/spoj/Max_Power.cpp @@ -0,0 +1,30 @@ +#include +using namespace std; +#define ll long long + +int main() +{ + int t; + + scanf("%d", &t); + + while(t--) + { + ll x,y; + scanf("%lld %lld", &x, &y); + + if((x&1) && (y&1)) //both odd + { + printf("2\n"); + } + else if((x&1 && y&1==0) || (y&1 && x&1==0)) //one even one odd + { + printf("4\n"); + } + else //both even + { + printf("4\n"); + } + } + return 0; +} \ No newline at end of file diff --git a/spoj/Max_Product b/spoj/Max_Product new file mode 100755 index 0000000000000000000000000000000000000000..464daee2533a653c6607d0833ea6b610b91369fe GIT binary patch literal 9072 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 QS+4$vRf5o(#JAS}Pt>W +using namespace std; +#define ll long long + +int main() +{ + int t; + + scanf("%d", &t); + + while(t--) + { + int x,k; + + scanf("%d %d", &x, &k); + + int a=x/k; + int rem=x%k; + + ll prod=1; + + while(k--) + { + if(rem) + { + prod=(prod*(a+1))%100000007; + rem--; + } + else + { + prod=(prod*(a))%100000007; + } + } + + printf("%lld\n",prod); + + } +} \ No newline at end of file diff --git a/spoj/Max_Sum b/spoj/Max_Sum new file mode 100755 index 0000000000000000000000000000000000000000..8cf30bed3d17aba602274350f44aa5a258472447 GIT binary patch literal 22648 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 +using namespace std; +#define ll long long + + +ll sieve[100000005]; + + +void sievefunc() +{ + for(ll i=2;i<=100000000;i++) + { + if(sieve[i]==0) + { + // sieve[i]=i; + for(ll j=i;j*j<=100000000;j+=i) + { + if(sieve[j]==0) + sieve[j]=i; + } + } + } +} + +vector primefactors(int n) +{ + vector v; + ll k=sieve[n]; + + v.push_back(k); + + while(n!=k) + { + n/=k; + k=sieve[n]; + v.push_back(k); + } + return v; +} + +int main() +{ + sievefunc(); + int t; + scanf("%d", &t); + + while(t--) + { + ll x; + ll k; + ll sum=0; + + scanf("%lld %lld",&x,&k); + + if(k==1) + { + printf("%lld\n", x); + } + else if(sieve[x]==x && k>1) + { + printf("-1\n"); + } + else if(k>x) + { + printf("-1\n"); + } + else + { + vector v=primefactors(x); + + /*for(int i=0;iv.size()) + printf("-1\n"); + else + { + + for(int i=0;i<(k-1);i++) + { + sum+=v[i]; + x/=v[i]; + } + if(x!=1) + sum+=x; + printf("%lld\n", sum); + } + } + } + return 0; +} \ No newline at end of file diff --git a/spoj/Modular_GCD b/spoj/Modular_GCD new file mode 100755 index 0000000000000000000000000000000000000000..eeef9b7eff292a177a4f7e0e7fc12ab22ddd510b GIT binary patch literal 13680 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 literal 0 HcmV?d00001 diff --git a/spoj/Modular_GCD.cpp b/spoj/Modular_GCD.cpp new file mode 100644 index 0000000..bb01976 --- /dev/null +++ b/spoj/Modular_GCD.cpp @@ -0,0 +1,50 @@ +#include +using namespace std; +#define ll long long +const int M = 1e9+7; +ll A,B,N,d,x,y; + +ll prod(ll a,ll b,ll m) //returns (a*b)%m +{ + ll res=0; + while(b) + { + if(b&1) + res=(res+a)%m; + a=(a+a)%m; + b>>=1; + } + return res; +} + +ll funcpow(ll a, ll b, ll mod=M) // returns (a^b) +{ + ll res=1; + while(b) + { + if(b&1) + res=prod(res, a, mod); + a=prod(a, a, mod); + b>>=1; + } + return res; +} + +int main() +{ + int t; + scanf("%d", &t); + while(t--) + { + scanf("%lld %lld %lld", &A, &B, &N); + if(A==B) + { + cout<<(funcpow(A,N)+funcpow(B,N))%M<4Xyy8a# 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 Q8W4~!I!8hM>8$_%0FqB>ivR!s literal 0 HcmV?d00001 diff --git a/spoj/NATALIAG.cpp b/spoj/NATALIAG.cpp new file mode 100644 index 0000000..f2054ac --- /dev/null +++ b/spoj/NATALIAG.cpp @@ -0,0 +1,103 @@ +#include +using namespace std; +// #define MAX 100005 +int m,n; //matrix of m by n +char a[105][105]; +int vis[105][105]; +int dist[105][105]; + +struct coordinate +{ + int row; + int column; +}; + +coordinate start; +coordinate dest; + +int X[]={1,0,0,-1}; +int Y[]={0,1,-1,0}; + +bool safe(int x, int y) +{ + if (x > m || y> n || x<1 || y<1) + return false; + if (a[x][y] == '*') + return false; + return true; +} + +int bfs() +{ + queueq; + q.push(start); + + dist[start.row][start.column]=0; + vis[start.row][start.column]=1; + + while(!q.empty()) + { + coordinate k=q.front(); + q.pop(); + // vis[k.row][k.column]=1; + + for(int i=0;i<4;i++) + { + int x=k.row+X[i]; + int y=k.column+Y[i]; + + if(safe(x,y)) + { + if(vis[x][y]) + continue; + + // printf("%d %d\n",x,y); + + vis[x][y]=1; + dist[x][y]=dist[k.row][k.column]+1; + q.push((coordinate){x,y}); + } + } + } + + if(dist[dest.row][dest.column]!=0) + return dist[dest.row][dest.column]; + else + return -1; + // return dist[end.row][end.column]; +} + +int main() +{ + int t; + scanf("%d",&t); + + while(t--) + { + memset(vis,0,sizeof(vis)); + memset(a,0,sizeof(a)); + memset(dist,0,sizeof(dist)); + scanf("%d %d",&m,&n); + for(int i=1;i<=m;i++) + { + for (int j=1;j<=n;j++) + { + /* code */ + cin>>a[i][j]; + if(a[i][j]=='$') + { + start.row=i; + start.column=j; + } + if(a[i][j]=='#') + { + dest.row=i; + dest.column=j; + } + } + } + + int count = bfs(); + printf("%d\n", count); + } +} \ No newline at end of file diff --git a/spoj/NATALIAGtest b/spoj/NATALIAGtest new file mode 100755 index 0000000000000000000000000000000000000000..f07378783047ef96840dced2ac1adacf5d788e46 GIT binary patch literal 35104 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define INF 100000000 +#define in_range(x, y, r, c) (x >= 0 && x < r && y >= 0 && y < c) + +typedef long long int LLD; +typedef unsigned long long int LLU; + +using namespace std; + +char mat[100][100]; +int dis[100][100]; + +void init(int r, int c){ + for(int i=0;i q; + int a[] = {-1, 0, 1, 0}, b[] = {0, 1, 0, -1}; + q.push(sx); + q.push(sy); + dis[sx][sy] = 0; + while(!q.empty()){ + int x = q.front(); + q.pop(); + int y = q.front(); + q.pop(); + if(x == ex && y == ey) + return dis[x][y]; + for(int i=0;i<4;i++){ + int tx = x + a[i]; + int ty = y + b[i]; + if(in_range(tx, ty, r, c) && mat[tx][ty] != '*' && dis[tx][ty] > dis[x][y] + 1){ + dis[tx][ty] = dis[x][y] + 1; + q.push(tx); + q.push(ty); + } + } + } + return -1; +} + +int main(){ + + int t, r, c, sx, sy, ex, ey; + scanf("%d", &t); + while(t--){ + scanf("%d%d", &r, &c); + init(r, c); + for(int i=0;i> mat[i][j]; + if(mat[i][j] == '$'){ + sx = i; + sy = j; + } + if(mat[i][j] == '#'){ + ex = i; + ey = j; + } + } + } + printf("%d\n", bfs(sx, sy, ex, ey, r, c)); + } + return 0; +} \ No newline at end of file diff --git a/spoj/NINJA7 b/spoj/NINJA7 new file mode 100755 index 0000000000000000000000000000000000000000..4c9a4e97977f5d2c7dd2ecb40924e2d969808a06 GIT binary patch literal 13712 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 literal 0 HcmV?d00001 diff --git a/spoj/NINJA7.cpp b/spoj/NINJA7.cpp new file mode 100644 index 0000000..687a810 --- /dev/null +++ b/spoj/NINJA7.cpp @@ -0,0 +1,101 @@ +#include +using namespace std; + +long long int limit; +// vector dp; + +void solve(long long int mask,long long int *arr,long long int *arr1) +{ + // cout<>t; + while(t--) + { + long long int n=0; + cin>>n; + long long a[n],b[n]; + limit=(1<>a[i]; + } + + for(long long int i=0;i>b[i]; + } + + /*for(int i=0;i=0;k--) + { + if(a1[k]>=b1[k]) + break; + } + + long long int count=0; + + for(long long int i=0;i|n1nP5F8;uW$z&i?Co^egCIl)< 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 +using namespace std; + +#define size 100025 + +vector< long long int> active; +int a[size],b[size]; + +int main() +{ + ios_base::sync_with_stdio(0); + cin.tie(0); + int t; + cin>>t; + + while(t--) + { + int n; + cin>>n; + for(int i=0;i>a[i]; + } + + for(int i=0;i>b[i]; + } + active.clear(); + + long long int sum=0,length=0,d; + + for(int i=0;i0) + { + length++; + sum+=d; + } + else active.push_back(-d); + } + + sort(active.begin(),active.end()); + + for(int i:active) + { + if(i>sum) + break; + length++; + sum-=i; + } + cout<ex>5hGS>; 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 +using namespace std; + +int main() +{ + int t; + scanf("%d",&t); + + while(t--) + { + int n,m; + scanf("%d %d",&n,&m); + + printf("%d\n",2*n*m-(n+m)); + } +} \ No newline at end of file diff --git a/spoj/ORDERSET b/spoj/ORDERSET new file mode 100755 index 0000000000000000000000000000000000000000..59bc1ebd18c3abf47b04c9b724ee54ee6d974d17 GIT binary patch literal 93272 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 +#include +using namespace std; +#define ll long long + +unordered_map m; +vector > v; //storing pair of values of character and x +vector a; //storing the x for every query in sorted manner +vector bit(200001,0); + +void update(int x,int val,int n) //sets the BIT[x] to number of numbers less than x +{ + for(;x<=n;x+= x&-x) + { + bit[x]+=val; + } +} + + +int query(int x) //returns the number of elements smaller than any x +{ + int sum=0; + for(;x>0;x-= x&-x) + { + sum+=bit[x]; + } + return sum; +} + + +int search(int val) //doing a binary search in a for the val-th smallest element +{ + int x,y,z,ans=a.size(); + x=0; + y=a.size()-1; + while(x<=y){ + + z=(x+y)/2; + + if(query(m[a[z]])>=val){ + ans=z; + y=z-1; + } + else + { + x=z+1; + } + } + return ans; +} + +int main() +{ + int q; + int x,j; + scanf("%d", &q); + char ch; + + v.clear(); + a.clear(); + m.clear(); + + for(int i=0;i>ch; + scanf("%d",&x); + v.push_back(make_pair(ch,x)); //making a vector storing every query pair + m[x]=1; //marking all the coordinates to 1 initially + } + + for(auto u:m) + { + // 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≦N>p-dBK;s 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 +#include +using namespace std; + +#define pb(x) push_back(x) +#define mk(x,y) make_pair(x,y) + +vector > v; +unordered_map m; +vector bit(200001,0); +vector a; + +void insert(int val,int x,int n){ + if(x>n) + return ; + + bit[x]+=val; + insert(val,x+ (x&(-x)),n); +} + +int query(int x) //returns the sum of first x elements in given array a[] +{ + int sum = 0; + for(; x > 0; x -= x&-x) + sum += bit[x]; + return sum; +} + +int search(int val){ + int i,j,k,x,y,z,ans=a.size(); + + x=0,y=a.size()-1; + while(x<=y){ + + z=(x+y)/2; + + if(query(m[a[z]])>=val){ + ans=z; + y=z-1; + }else{ + x=z+1; + } + } + + return ans; +} + +int main(){ + int i,j,k,x,y,z,n; + scanf("%d",&n); + + v.clear(); + a.clear(); + m.clear(); + + char c; + for(i=0;i>c; + scanf("%d",&j); + v.pb(mk(c,j)); + m[j]=1; + } + + for(auto u:m){ + a.push_back(u.first); + } + + sort(a.begin(),a.end()); + + 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 D2kh|+ literal 0 HcmV?d00001 diff --git a/spoj/ORMATRIX.cpp b/spoj/ORMATRIX.cpp new file mode 100644 index 0000000..f8322a9 --- /dev/null +++ b/spoj/ORMATRIX.cpp @@ -0,0 +1,89 @@ +#include +using namespace std; + +int n,m; +int a[1005][1005]; +int row[1005]; +int column[1005]; +int res[1005][1005]; +int main() +{ + int t; + scanf("%d",&t); + while(t--) + { + memset(a,0,sizeof(a)); + memset(row,0,sizeof(a)); + memset(column,0,sizeof(a)); + memset(res,0,sizeof(a)); + + + scanf("%d %d",&n,&m); + + for(int i=0;izz1dRFNqY4iBF~CTEbuxiyL8(E@ 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 JBLips{|}MWofZH9 literal 0 HcmV?d00001 diff --git a/spoj/POSTERS.cpp b/spoj/POSTERS.cpp new file mode 100644 index 0000000..5091e8a --- /dev/null +++ b/spoj/POSTERS.cpp @@ -0,0 +1,115 @@ +#include +using namespace std; +#define ll long long + +ll n; +const int maxn=4e4+7; +vector > points(maxn); +map compress; + +int tree[4*maxn]; +int lazy[4*maxn]; + +void update(int node, int start ,int end , int l, int r, int val) +{ + if(lazy[node]) + { + tree[node]=lazy[node]; + if(start!=end) + { + lazy[2*node]=lazy[node]; + lazy[2*node+1]=lazy[node]; + } + lazy[node]=0; + } + + if(start>r || end>1; + update(2*node,start,mid,l,r,val); + update(2*node+1, mid+1,end,l,r,val); + tree[node]=val; +} + +int query(int node, int start, int end, int l, int r) +{ + if(lazy[node]) + { + tree[node]=lazy[node]; + if(start!=end) + { + lazy[2*node]=lazy[node]; + lazy[2*node+1]=lazy[node]; + } + lazy[node]=0; + } + + if(start>r || end>1; + + return max(query(2*node,start,mid,l,r),query(2*node+1,mid+1,end, l,r)); +} + + +int main() +{ + ll t; + cin>>t; + while(t--) + { + compress.clear(); + points.clear(); + + memset(tree,0,sizeof(tree)); + memset(lazy,0,sizeof(lazy)); + + scanf("%lld", &n); + for(int i=0;i ans; + for(int i=0;im)_aP>FnmUy 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 literal 0 HcmV?d00001 diff --git a/spoj/POSTERStest.cpp b/spoj/POSTERStest.cpp new file mode 100644 index 0000000..a875a56 --- /dev/null +++ b/spoj/POSTERStest.cpp @@ -0,0 +1,159 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +using namespace std; +typedef long long ll; +typedef unsigned long long ull; +typedef long double ld; +typedef pair pii; +typedef pair pll; +typedef vector vi; +typedef vector vll; +#define l(x) (x << 1) + 1 +#define r(x) (x << 1) + 2 +#define mid(l, r) ((l + r) >> 1) +#define mp make_pair +#define pb push_back +#define all(a) a.begin(),a.end() +#define debug(x) {cerr <<#x<<" = " < +inline bool ispow2(T x){return (x!=0 && (x&(x-1))==0);} //0 or 1 + +template inline T powmod(T a,T b,T mod) {ll res = 1; while(b){if(b&1) res = (res*a)%mod;a = (a*a)%mod;b >>= 1;}return res;} +template inline T gcd(T a,T b){ll t;while(b){a=a%b;t=a;a=b;b=t;}return a;} +template inline T lcm(T a,T b){return a/gcd(a,b)*b;} + +inline int nextint(){ int x; scanf("%d",&x); return x; } +inline ll nextll(){ ll x; scanf("%lld",&x); return x; } + +const int mod=1e9+7; + +const ll mx_ll = numeric_limits :: max(); +const int mx_int = numeric_limits :: max(); + +const long double PI = (long double)(3.1415926535897932384626433832795); + +const int maxn = 4e4+7; +vector points(maxn); +map compress; + +int tree[4*maxn]; +int lazy[4*maxn]; + +void range_update(int node ,int left, int right ,int lq ,int rq , int val) +{ + if(lazy[node]) + { + tree[node] = lazy[node]; + if(left != right) + { + lazy[2*node] = lazy[node]; + lazy[2*node+1] = lazy[node]; + } + lazy[node] = 0; + } + if(left > rq || right < lq) + return ; + if(left >= lq && right <= rq) + { + tree[node] = val; + if(left != right) + { + lazy[2*node] = val; + lazy[2*node+1] = val; + } + lazy[node] = 0; + return; + } + int mid = mid(left, right); + range_update(2*node, left , mid , lq ,rq, val); + range_update(2*node+1,mid+1,right, lq ,rq, val); + tree[node] = val; +} + + +int query(int node ,int left ,int right ,int lq,int rq) +{ + if(lazy[node]) + { + tree[node] = lazy[node]; + if(left != right) + { + lazy[2*node] = lazy[node]; + lazy[2*node+1] = lazy[node]; + } + lazy[node] = 0; + } + if(left > rq || right < lq) + return -1; + if(left >= lq && right <= rq) + { + return tree[node]; + } + int mid = mid(left, right); + return max(query(2*node, left , mid , lq ,rq),query(2*node+1,mid+1,right, lq ,rq)); +} + +int main() +{ + int t; scanf("%d",&t); + while(t--) + { + compress.clear(); + points.clear(); + for(int i = 0; i < 4*maxn;i++) + tree[i] = lazy[i] = 0; + + int n ; + scanf("%d",&n); + for(int i = 0; i < n; i++) + { + scanf("%d%d",&points[i].ff,&points[i].ss); + compress[points[i].ff] = compress[points[i].ss] = 1; + } + int a = 0; + for(auto &x: compress) + x.ss = a++; + + for(int i = 0; i < n; i++) + { + range_update(1,0,maxn-1,compress[points[i].ff] ,compress[points[i].ss],i+1); + } + set ans; + for(int i = 0; i < maxn-1; i++) + { + ans.insert(query(1,0,maxn-1,i,i)); + } + int k = ans.size(); + if(ans.find(0) != ans.end()) + k--; + printf("%d\n",k); + } + return 0; +} \ No newline at end of file diff --git a/spoj/PPATH b/spoj/PPATH new file mode 100755 index 0000000000000000000000000000000000000000..72b2443d7f1adebd7b0415b7d537298c01e020d6 GIT binary patch literal 54488 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 +using namespace std; + +bool vis[10010]; +queue >q; +bool p[10001]; + +void clear( queue >&q ) +{ + queue > empty; + swap( q, empty ); +} + +void isprime() +{ + p[0]=false; + p[1]=false; + for(int i=2;i<=10000;i++) + { + p[i]=true; + } + for(int i=2;i<=10000;i++) + { + if(p[i]) + { + for(int j=2*i;j<=10000;j+=i) + { + p[j]=false; + } + } + } +} + + +long long convert(int number,int position,int value) +{ + int ones=number%10; + number/=10; + int tens=number%10; + number/=10; + int hunderds=number%10; + number/=10; + int thousands=number%10; + + if(position==1) + { + return (thousands*1000 + hunderds*100 + tens*10 + value); + } + + if(position==2) + { + return (thousands*1000 + hunderds*100 + value*10 + ones); + } + + if(position==3) + { + return (thousands*1000 + value*100 + tens*10 + ones); + } + + if(position==4) + { + return (value*1000 + hunderds*100 + tens*10 + ones); + } +} + + +long long bfs(int start,int l,int dest) +{ + vis[start]=true; + q.push(make_pair(start,l)); + int flag=0; + + while(!q.empty()) + { + int number=q.front().first; + int level=q.front().second; + q.pop(); + if(number==dest) + { + flag=1; + return level; + + } + + for(int i=0;i<10;i++) + { + long long n1,n2,n3,n4; + //thousands place + if(i>0) + { + n4=convert(number,4,i); + if(p[n4] && !vis[n4]) + { + vis[n4]=true; + q.push(make_pair(n4,level+1)); + } + } + + //hundereds place + + n3=convert(number,3,i); + if(p[n3] && !vis[n3]) + { + vis[n3]=true; + q.push(make_pair(n3,level+1)); + } + + //tens place + + n2=convert(number,2,i); + if(p[n2] && !vis[n2]) + { + vis[n2]=true; + q.push(make_pair(n2,level+1)); + } + + //ones place + n1=convert(number,1,i); + if(p[n1] && !vis[n1]) + { + vis[n1]=true; + q.push(make_pair(n1,level+1)); + } + + } + + } + if(flag==0) + { + return -1; + } +} + +int main() +{ + isprime(); + + int t; + cin>>t; + while(t--) + { + clear(q); + int s,d; + cin>>s>>d; + memset(vis,false,sizeof(vis)); + + /*for(int i=0;i<10000;i++) + { + cout<=0) + { + cout<nrES(EP#)#RiJitHu`Bz! zwABJZDV4m?t{P}6(}pS@69Y|@2_aUECT$oQh(BPWXl!iCpll8)EQk(8tknB`=bq28 zZ=8WN?T?-4-tYaL?>z50pL3tyw8`yq2`+ANlOSriOp`48EkyrSl2p7}F-K@(xwuM{ zfm4b{lM;e9#&AlxW>}&0Jb)#5YTY)Y)~!i|Ay>zcBP2-mO&3j}Hf)%0lMIFMNe0W0BTSM^D6-6_?z;t;MR1 z#*=18C>g0~j76=6YJIOTXY%WbkGMMRkoKf3R7xRr-febv-)(kMbRjBjuP=9aN?zwM(2>X3nWCDs%)2#=Bi6#_G@ufyF|+I zruojrm&fNdOtO`E{QP|`kjKwo=e2o!UK`{`%j5H&M0_KUe;F}UF$T_87=xuB%<&21 zfnlpO^AH5az{?dQtYO3Ky5B=3yW%apE0=4)i0&rg_*fQY#cM=U7mU9l=`%!A*N+cN z`XtfR72_u){VSrW3&xL2`e~x6>ElNw{TR{I1^mJUu|^1y+So-|HpZZ=%67;j#(uE=?t%ib!N zi(Mmj{r%q=ukc~|ENFvaCWgRvy;Ax%SgucHO+!`qz!(EJi&W{vL$J#^`-BX#Z|oXB z02{*7eHRDyi^j3Rk_V0>rj7bVYfU}_l0{M?ndv-SS)}!g6E8uyYlPfk0xVAVolmDS zgZlaOXyy@Alh&sO^$dsyC4u^;q*w9FcEMEVccV->a;>e&r3H)i` z8%8Q09zHm1mA^>SccRqpd#r&wa$V#L8-pb)Rzhr`bE=0=9z;l|`tcfSz`TgR2 z^)Vy;N?sLbFJ`lY`q)6mmDa}w^>Y$AH`sO#%=Fu6&nmQMKtJ!Acz#r$B$uQ51!~n` z=?|pm3w=Ix!r^9kxgZVx2m`deWI&&E4M2C|>|m)0RZ=OvoovpemJXIS0YhaQ^~uz{ zp)F`~=JS7LvlEvMZ6o|+;C8PKZk-AnYv;+X!fvt-@!F$+L8!viO{b;?`YyUs*WBMX zmCa&7e0`|3F(fj-frpbjsZ)s@qR(08ci^cpJVm-g)R4@xw01^rUB^((Kd}R5m|HSLLDg9wn`m+Xj$S!)< z7#MLG8zxd8(#ChkuHc=)UBSD8=E%|M_5UgML+MX#jr5&Z5%#SJi`(=Tv5h|4!nMq^ zaVH?{ukU`I%{~FxgQ_jS4s-;a9i9WEp?(N+Wggn|7U1=OOVFw&z*_-(0DAx*1bi3p zEkHUqQE?sEAzb^aT+8N_R~&VfR}r7i%9E(?T2fG@xV{iqLr(eu==YPZw`!Aj@s`TD z_f+(Yo0o39cJ0;QAU5eV;5mZ$W#fY0szdJj`DN}csM(f>A%6+-_W(ss{^y+hAlUbz zy}^9BKH#|r8sz^8JjWr|(Y~C$M{|(_lD~}Sx9Fdn0CV#F(!G?Q1N(i*ugI4-+wunR zO5pbokVi;f=dJpoyUx4#h)4JO4wuwr;}dzPEb4KTzY}u*&B9)Ěi6BRI9<%3>GWRf){5}mx%+j#(1X#oit3l- z=2xM9sTeM*UnY3|73!CZV&mq)Z07MU)Sn}G-W2jL6Fk2P`EzsYtdKuX1d8;#N6Z%| zit@d=yiTE?%G|mw;4i0>Sx+LjFQ=qNx7mxqYBef05wzU&y~g&@tFqJmPD) z{7b&fBd*NdzY6(SeQJFd@|TF_qWqxI;ns8jCt6i`279ih`OYone*@`*vNhO>N)3C9Qq4seAT+({r*uP#2;4kfzNFB zLEp!f<-sGf@E?=@^Ar`jU-D*r_De`gjxT)uz~>GwP0+=g)^|2x(CmCo?;!4LJDv)*f@f3KkY2^D!Z2Yg?~ zU*vn#nXr;ps;kT2i9Fqw`W!-4pK!^_XERo=BRZ z)IQM}@7>cAu_9srjq5hl6jw64qOqtMN+d%2%}C5j>=#{$P;bNxr+Rz$!z7O~p=lMU zHn#?Dyv^UaXAiQHEml*lX-4Cu1hS@DW+1I-r!;%6EzDt0$B4-sp*V!hS_^-2f3Fql0JIV|>}D()LneNY@W6{Ty2GRD{6Nv zKO0&JTe3HjNTPWKgb7(9(i0*Bh3)CFgkLtx57fUq z4iXu6ylI(1DK4Y-N4nL*>JGyRQ?{wS!fXr1zt;&hR1@lrb|QwjMef0&F7Tt*gdc0Y z7wcE*bgtF&&*^QI_ znZtg#Op~g^%08jSf$h0orXL5AA3x`RYE%Md4l63?a3_AD?0Nk79H=S#1z%$SoWq{) zrLD^T&M&baa@h0z^@Os2*fHUq{r4*Dy?A)J@O^=QPj~j0)BY@MEA#C6K3qXgQJnft z`mfNT5V?N7H&=Z{`@g}KhMMg;AH@IfFs9nCrb8|sZr3qK{ro%V6g3LP886ce{{fx+ z_ywP%RRzt`%k+!w7*09t`To_c>^V;Mz;;Yu0zy1)Kc9o!mElya>HuZnQ;>lNV$ujO zLqWE$aq!t2Lz>@QcfP8nQV#Q2Q3)NStee+PzWp&3{|S|-{5phd@NoNi|D*L;tbRi& KT<;J%>;E?%#g+sB literal 0 HcmV?d00001 diff --git a/spoj/PT07Y.cpp b/spoj/PT07Y.cpp new file mode 100644 index 0000000..9453228 --- /dev/null +++ b/spoj/PT07Y.cpp @@ -0,0 +1,92 @@ +//using DSU +#include +using namespace std; + +int n,m; +int arr[10005]; +int size[10005]; + +int root(int x) +{ + while(arr[x]!=x) + { + arr[x]=arr[arr[x]]; //path compression + x=arr[x]; + } + return x; +} + +void weighted_union(int a, int b) +{ + int root_a=root(a); + int root_b=root(b); + + if(size[root_a]=size[root_b]) + { + arr[root_b]=arr[root_a]; + size[root_a]+=size[root_b]; + } + return; +} + +bool find(int x, int y) +{ + if(root(x)==root(y)) + { + return true; + } + else + { + return false; + } +} + +int main() +{ + scanf("%d %d", &n, &m); + + // bool flag=false; + + for(int i=0;i +using namespace std; + +int main() +{ + int t; + scanf("%d", &t); + + while(t--) + { + int N,P; + + + } +} \ No newline at end of file diff --git a/spoj/Problem_sort b/spoj/Problem_sort new file mode 100755 index 0000000000000000000000000000000000000000..61ef6f2f998c8e13c09575bd54ab402edf1c6900 GIT binary patch literal 36792 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 literal 0 HcmV?d00001 diff --git a/spoj/Problem_sort.cpp b/spoj/Problem_sort.cpp new file mode 100644 index 0000000..39e886f --- /dev/null +++ b/spoj/Problem_sort.cpp @@ -0,0 +1,98 @@ +#include +using namespace std; + +/*struct elements +{ + int score[35]; + int number[35]; + int count; + int index; +}; + +elements a[100005];*/ + +vector >problem; +vector >cnt; + +/*bool cmp(int a, int b) +{ + return aproblem[j+1].second) + count++; + } + problem.clear(); + cnt.push_back(make_pair(count, i)); + } + sort(cnt.begin(), cnt.end()); + + // for(int i=1;i<=p;i++) + + /*for(int i=1;i<=p;i++) + { + for(int j=1;j<=s;j++) + { + printf("%d ", a[i].score[j]); + } + printf("\n"); + }*/ + + /*int temp; + + for(int i=1;i<=p;i++) + { + // printf("here\n"); + for(int j=1;j<=s-1;j++) + { + if(problem[i].second>problem[i].second) + { + // printf("here\n"); + a[i].count++; + } + } + }*/ + + /*for(int i=1;i<=p;i++) + { + for(int j=1;j<=s;j++) + { + printf("%d ", a[i].number[j]); + } + printf("\n"); + }*/ + + // sort(a+1, a+p+1, cmp1); + + vector >::iterator it=cnt.begin(); + for( ;it!=cnt.end();it++) + { + printf("%d\n", (*it).second); + } + + return 0; +} \ No newline at end of file diff --git a/spoj/RMQ b/spoj/RMQ new file mode 100755 index 0000000000000000000000000000000000000000..95f9adc0deaa49d03530a0313052fccda9a339c0 GIT binary patch literal 13792 zcmeHOeQ;FQb-%k3AU?cWY#al2V1u!X9cv?jP=!gt>f^zaBY~n1mpZ{u%kF~KmbCKj zTPhgKkP2{L)^eD{$?!+h($sF#PTG=A>miN<0#ayNrV$<6r43Wm7elTK&)hc4`%dw%ER-h1wS_wBpyXusCH+3WELE?)6zLEKnbNJ93v5P_g% z6;>$ z5>i#0etxmdGDXiNKz7vE$&X4Fv`bc){+8;;0c(Y=pzH`HyQK=p?*Pes_>d2KTz)LmB@(01kpI-z=6OH% z!Oi(=v^SgYKDwv@P|>mpj_xcVeWnOb{sRT{R~EsS6!9}q1dkTM*A?-m4 z7#)>{)?Q<@wXZ`jp4i%M*2WVl16r}_roOn@Sf%Zec%mnzwQg=}PqZ7F1mek*))q&# z-K>uFMSFfxlL>c|g_>)yn`<}MMdE$7??@tTN>%DXoZ=Ya5F&b!r;SMW)5flFyazFj z41|ra85@Y3qBqu?iowtz0~P1qFr02_ZmMrE)&{F{wY9q))|s=*!qbz2caXPp<5e zIPC#;i;~T)N4gi#KEZ|87vbtwAVo{n`ke<(xt4gqfvc@f;%gkZ^L|t5z@7VTtplev zxP%-ykC9}$17E<(psfykp#$IUz!y32E(fk|8B*Hqz%c>2q7U6D(=&5ExF;a=LnG## z?B7D94}HJvtgSM&{y!j^df+C$%U6a_Bfgu2<6~1O4_qUjLO4Du`5zNcp&K8O{67(2 zLi};b|2^@v<&Phe{NE5yAss&=`7^{*D8~;-{x#w$gya2^|8wH$wmRM=`9CHeYefmKb_sAd(P<>Z<}}Lye(vJP8eqU(6Jro z=FA1;c~7=<%8wr)`p_nko^$;xu**672^ma{?ik+(8>(Zb1J>XTE1k7EuV%FDM(t|) zqoDfH%#uT6FARu`c0)gEEjcu@s!NPt!)P*{*^GA8GiseVeQl*@^x~wY-Gb8aB1lll zTIZ}EW`7UvGuo};eh);RkzpP5s&xjE=cNP~S}2uXKlSoqk9cmSR2&-d$d;)!XUo@9 z4zbhhK8Y8$*)(mVpC0q-!$*``YFr|72+*y!bnATfl@g52?`-tQ56-F(RpvruwTv}d z+GQ1~`!m`Y+U~rJ0Of*Zvoc;U7mXJJJ+}Wrm~Yf>?O%abhd(JY>C2gxF*}NN)`WE~ zJBVOiME+9)LZKO!X;_WLs0 z<=hls@5^*vf*^0z+=PZ4^@U8!Xr>eFC41D*U_h33Bct7v>*q4o4-NZ5rgIcNc-Wtj zS`+$kCq7uD_AFk(o|6%Jre!j!uUjNLj_vF9pHEFqPo`@~upZN`bMl(aegm4ibq3f~ zV7m1W*&{&CYZLH`A&za(Cibt&XcN4EXx4MaF{lnf_4-?{EqQ9GI7zWNMGGN&{lDmX z7_-itBtNI+qI~x!)SRWu+&F25))Nzw(8_$*C#qUMo(SfB2lpUisP7 z)N2FS5Kj_&ihdJjuLDz;-$~N7Blc%#YlnSJT7#3im7dTs6&XLiCo^KhnZdclUoRyd zTV-y$JyQ2;b&uCsQ+1tn9nHfJJXjvU<~v*w1Z{7!-fyzrY<`G#!ZQ8z2PN4l^iDtY zt{JHM5%1T{*0pBq{YH40T5?$*I_uFlTu)!48{+47)P25gN8OWk#@Qp&4Ze34lSuy5 zEt7ulcE}R-$YHI9iY#G{srg_&|9GNyhO#buT6Lc{GNLk%_}?Nndc{*o{^WLy@yFbmBRW$ ztcG0bqn{(B>+^5+Eq$zf;ct{35Sx~7e0bgJRRog`ZinJk_`M(Pi#nhGu(#okxg{$+ zXj;mnfWL$B(Y+%l_r617DL)8!2;+V`PyWw2`OCmJBOWyVoP9|m=l}bF-$k5gkIKm- z(p>t#3V0vnpLWXkPRmQ-_bB9dJLRpmyb;)H$VVWLk-XmL|B|=fxAesl%@-Iht@o{Y zVUF&rJUmzT)eg;T@r9DU+B#oloo`LOF91F0*Za!ky!60N7JleQ&}^BFz-$C&BQP6* z*$B)=U^W7?5txm@Yy@T_@c%6W$LEJ+mj-YQO67>+C4(<|B%|V{bhb}rkxj(JypXK% z8FMvGSE($M-}JtD-y_Gt+_f!RlaTMNL|ARnJw`1S_k98y>Rp zz}m{Hn#!8W4G!zV)e@}QT5o8EumrQ*Q4lW?Wfe>yC-U`|2;Lv^@w)}R262}X@e$-{6vFQj{2tM1Q$km#y8iR= zWum_zKK&j%U!QlkX_U5+Qt=ZUaOM}P?d%-{HW5&YW{_X&EtNrmq#CsDZ*@#lQ5 zhow}A)6fs7x|56+!M`j0&)f&DO5EweuFse4&cxRg!Rr-H?+Bb_H}HTHQ1v0H?-OsS zbt})PA^Q^W#mFY$eW_IG|4tDXHz)i%QVQ|)BjulYrmHcb6t|x(2ubLg68s#L=8N9RQK7eVvP6<*%1rOt z6^tO~<*|k~qq(WQ1DQqB2}Fk3YeXo82&qLzG-2%SN$d>w7*R8kOc~+yfQTe|`+H($ zEE@dP^&6@SD;c}ueQ_h4OosOwu|6}oSL{lLdt*j4-P^ktCJxSkrkSVO*7Dh4q`zP0 z^)%NSMm#|(V5_SPO3^VXGYLpM+!Nmi4hd4>z9@2_kUEr(NWLDEG_N0VA497~NPFlm%xecTo)Og=FkZrEheX7F5$sEtv0z<&Q-vAct+?HN>7bnF zig;86iR%uhx(%4t2mD_AWO!2!epRo{XM1#${7rz8r+=#i!45T z({2N$gp5Wo)~)uJ?kJovXPep^jcvj8ry@{8GvVHN1bs-DO)Me!t?DllwhV>kWaM&im%)ehK1>be-jXF!ZdA+k`Cq{Kk3J0fjT+`#tkjs5tHU zInPuMSF@s`Zu>^y@8j8=+dt|JNzJ1QsFvLH`2?Q>C|GPoWg$Ln&(Dpc3OKF?OusIu z%J%B+B_0QcTVc+gpDz!nj`Dd2RAh0-?@6F^*1+xabLb=L0ENdtN7=I;)2D&c*#-0b zyxOYlTa_KLq{IDJu%PD)>MGkGn;Vj%W6EBa+|2m#_zyx(_Vr4S&tJ02p3iHj|764M zv;B*}C?-lh_d8=k9pLae6jWrPww%QRX5Q`>od>v+sdBj zpZ|`5|Gpv04J*oa44-n@^ZCIyRr{19<1Fs@{QyEAK6DLH;qyrTdk3B;TROddn12%$ zYKraoJfduct>JFZ&HoG3sEcgR&;9-nY5%XVr7326KHuQKM;TM&=Vid{^SF+>+UIkS z$(0bGu)fVr^NjyH1kV2F&PxKeML!!V%63dAfjjN_`L{n{8*o3B`HcSDhJbwW`1!fw zK)|+`Jgfp~vqHg&gB=>D_A7IUU159PzgbMWRG3l@IkznZ>g%owyRwKC74BlCA71-T j`x611TcZL+qgaa%$Bp+dx;_iFKeooUU+21D-0lB2&)I~Q literal 0 HcmV?d00001 diff --git a/spoj/RMQ.cpp b/spoj/RMQ.cpp new file mode 100644 index 0000000..60d4c30 --- /dev/null +++ b/spoj/RMQ.cpp @@ -0,0 +1,111 @@ +//segment tree implementation +#include +using namespace std; +#define INF 100005 +#define ll long long + +int tree[400005]; +int a[100005]; + +void build(int node,int start,int end) +{ + + if(start==end) + { + tree[node]=a[start]; + } + + else + { + int mid=(start+end)/2; + build(2*node,start,mid); + build(2*node+1,mid+1,end); + if(tree[2*node]>=INF) + { + tree[node]=tree[2*node+1]; + } + else if(tree[2*node+1]>=INF) + { + tree[node]=tree[2*node]; + } + else + tree[node]=min(tree[2*node],tree[2*node+1]); + } +} + +void update(int node,int start,int end,int x,int val) +{ + if(start==end) + { + a[x]=val; + tree[node]=val; + } + else + { + int mid=(start+end)/2; + if(start<=x && x<=mid) + { + update(2*node,start,mid,x,val); + } + else + { + update(2*node+1,mid+1,end,x,val); + } + tree[node]=min(tree[2*node],tree[2*node+1]); + } +} + +int query(int node,int start,int end,int l,int r) +{ + if(r>n>>q; + + // int a[n]; + + for(int i=1;i<=n;i++) + { + cin>>a[i]; + } + memset(tree,INF,sizeof(tree)); + build(1,1,n); + + char c; + int x,y; + + /*for(int i=1;i<=2*n-1;i++) + { + cout<>c>>x>>y; + if(c=='q') + { + int min=query(1,1,n,x,y); + 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 +using namespace std; +#define ll long long +#define INF 210 +ll a[205][205]; +ll b[205][205]; +ll mask[205][205]; +int main() +{ + ll t; + scanf("%lld",&t); + while(t--) + { + ll n; + scanf("%lld",&n); + + memset(a,INF,sizeof(a)); + memset(mask,0,sizeof(mask)); + for(ll i=1;i<=n;i++) + { + for(ll j=1;j<=n;j++) + { + ll k; + scanf("%lld",&k); + b[i][j]=a[i][j]=k; + } + } + + for(ll k=1;k<=n;k++) + { + for(ll i=1;i<=n;i++) + { + for(ll j=1;j<=n;j++) + { + if(a[i][j]==a[i][k]+a[k][j] && k!=i && k!=j) + mask[i][j]=1; + + if(a[i][j]>a[i][k]+a[k][j]) + { + a[i][j]=a[i][k]+a[k][j]; + } + } + } + } + + //how to print?? + + for(ll i=1;i<=n;i++) + { + for(ll j=1;j<=n;j++) + { + if(a[i][j]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 Tgws4%{N=5@nzfjmo8$in8+M;< literal 0 HcmV?d00001 diff --git a/spoj/ROADNETtest.cpp b/spoj/ROADNETtest.cpp new file mode 100644 index 0000000..f42c4f1 --- /dev/null +++ b/spoj/ROADNETtest.cpp @@ -0,0 +1,30 @@ +#include + +using namespace std; + +int main(){ + int t,n; + bool check; + int M[200][200]; + + scanf("%d",&t); + + for(int tc=1;tc<=t;tc++){ + scanf("%d",&n); + + for(int i=0;i+u4KK1J$11YqBRwTf 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 AT>t<8 literal 0 HcmV?d00001 diff --git a/spoj/RRSCHED.cpp b/spoj/RRSCHED.cpp new file mode 100644 index 0000000..b64fe9b --- /dev/null +++ b/spoj/RRSCHED.cpp @@ -0,0 +1,15 @@ +#include +using namespace std; + +#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0) +#define debug(x) do { std::cerr << #x << ": " << x << std::endl; } while (0) +#define rep(i, begin, end) for (__typeof(end) i = (begin) - ((begin) > (end)); i != (end) - ((begin) > (end)); i += 1 - 2 * ((begin) > (end))) + +#define ll long long + +ll n; + +int32_t main() +{ + +} diff --git a/spoj/Random_function b/spoj/Random_function new file mode 100755 index 0000000000000000000000000000000000000000..507c1829d0abcf3488bdd06b860e09b731c23485 GIT binary patch literal 13904 zcmeHOeQaCTb-yI_71^O=$4*>3wu!_}>^5d4TUO;}OGtg#PbqCHmYjJ_l_!d%B+e2k zkdLk$EUg1YnF&R$v9^N?tZ2|+1GZsn)&)jlG`3^~wpt8>(==JKWSNk;Eg2`B(xj=9 zx#522zI&+0N3t_EV1Eoc0^hmkch5QZ`@Z+?JNjxzV6W5R5KK;Sk05E`2A_n?s}NmY zDJrZ*+#r0yBQ}aEAeH#}WDapN#e7k@W?rN8T;LV>wKz?n#p#m?=C_)#V9qrpPUS6; zPbE!$t=<%w3)GT`?5M7pjU*B8E8tJ7dOWK*+mT3iHJhY5c%Mu#Ur-fe&h4YN(XU7O z>v8%Zk?bQT+U0eLlP*!$&x|mo*VIW7+$R&v112n(v)%o$qk3L1scsU7RC(q4Wu2-& zbJbk&+2Lq^bJJ&s!#jqfvDDa(v6ki?%}w59+`Ch@oBWgRz5|D4mAD^0kYxM7X%0~S zo|$(%Rg>!n=j!hqdG5h2%|CtW%`EA!!jH#IhG18ds|4v<(-SPe~&j`pjo&4mAs19~_Ct^rR6?7`iU>`;O^{B7@PS z5lOTS2b0N2Qs|vM`}J@nq2QkVZNu?cq$k)v95M4s=X~)%x6#a;8;M}lNOp!gI-266kyuC97btI+-WgBo2LX)4!*GAyPTCqfj+yE$QFuVH zk*3aA)M%HuJ~%d}k46&7cq}*^HID1Y8cHcIIk~Qio4&u;Z44(nOSJ0{wMVs|o8O~% zbnn*DR#|*}IN1@+r^aY(216k|Nkh{p^uw_)M`K}(M=~`Mq0A7E8HOu#R1Xau)dzyn zVGLquET{*K$XL`6iC`=Ygw)lrjs&AIv9GO7-{ox(`vRSaO?ixV!?UOBtJe2&i5+9H49!# zfTAu7j*iRI5evRDj|$Oe!O@X<8nWQ-JSxPf1y{E`nLB2|t^3*u3(jLe2HN;LHQHq5 z)>}M6o0v8#GcNS1HvU4*tfep{bGuhVCAW1Au63JzNRd25O4<1wXlpIWG$h%}Qg)I| zLzkVF^2awrc9HzFlz&As4OR9@DZfoJ4N>-#l;0wmh9-ML%Kt(#4SRM}%0D5Qh9cW1 zA5+Z#;<)8b2`Upy&gA!x4ct9h}1?t=Ixn}SElD?7B_FdkiHz9uD?@=?KA1Q@oA@aT1!t%!!Wb<`YasMVva2S z9T$}G(*FK>vy3WB85uN#%9uLh%$$WH%)YJt=6NbgOJ5F5^*J(6m4JsF+T^#S5_ixm z)YKzTJy)mNy+Zo9piNFtHMI0aE&b1#W~)Z_S}qqz|B@^>S@9Po{&T{stoU=l({B>2 zBXw?-D(HIy#X-uCUgqhHa_i0Pdp2w%!SfM@IT;B=V&no zrnU~$d9XQ5?TCSQccwq=Ouro1PPM4fW`66++zH>>#Jh&4@pax$0_nE{=?~lCA-CoY zZG6_D?YWwIn>P9fd#N4%hy42Nsipnr{aGw>@~3VEbieoS_aEpw(BtWhjiwCGKy*0b zxqYW-Y-p$z9)X?KvB7n>hE~v~{KiMQ+&77%Dq--Spx>^6e~1No7n<6Hh6cbp!G8$+ zOW?zh{}KEd@HN1Q91kB7j8RY{wn>K(^w8O7U7Hl22689eSCT zdtkW-mV02i2bOzaxd)beV7UjDdtkW-mV4m;VGm5#`eds#9AObXsbneOf>$R=c1~yK zM2yo}Inhd!iMbk|OwoZO(G}(YQ>K{z&bmR#d}g~|$&2bcEWJk((K{;9uRqDfiJx}* zh~>Zeo~$rsKI@)#nlc@b5_#3jAD>mPGhrd$Jyn_*UTsanK?V`OGj^%=@q0KO)Dqod zGBH-|lPSjgl+5+!^5_7Uh-JK%%J$4x`6Q0x0V#7m7L>B8vul*C=aD2Z3(=cUz| z3$t{(q<)p)d0VJoElQ2I3#)+VNumA?g6CTyUYnnnh4_m6`Ygm(iUqZ93-KGpe2MXJ z33omoq)@*uzupV+daN8w7p!u#-!kniZn7?No^OAD6T*4uTG4M$F`5tK1+C?4fiViNgGb*Zw|3kPu}OdC0^X04=X>@Hb0L`{o--? z3*e>N^_8E%e{s(SI9#K56{uui5T$d_rAv2!CE$C|= z5#P_=M`E>Q{qkA!Q}E-FnuV7il)>paV6`Y-?-wOr=!2xIW$;?m=Qh-*SJji-vPIUj z*v~x*r*92b3IX?60hRu089y%oUxlysyf0NK{g=x4c^7zniT?kX{5aPat?Me6iPP5+ zE8PT~`ky|p5=G=yh}$Ku1PjxF*IU*jXB{o0|9lzzwKDjF7#H&Yq^FNvOTJJ>|1NYC zkCD~j9^lkJ_Wi9x>C;CAD-D$KQ!VF-ThMoBBKqb)v{BZl#QiIjFp@@UV8Dw|75%=p zLwcaIy9W_MOMyVTF`|bk6bK3Cdd&s}PL+?1yP9ajVH#m*BI=w?v3R?T2yn};#_jY&m=so_{KnEEWRGtEK zEP#x@5_)myW-0JXHix50uEy2!_kzm@4XjHMOoc!mUKx_5Ng%3%u?ixAKv4wuX~u zOMuwY;9wP^G>SVLvzc6XC5k5yMVu`aA?HklI+SK;QQV!+XNff{3~_@G6{IG-$>SqN zupit=n0$y+(HLSAM};>QHzHmHt?e*^gGw5VrM&&AD1v39Vc{idD3}})-th4l{F&TH zm^sG~4Tw#kK+utwhztkGK&3{94dIo;?M2c%7>9^BJ6vhwf>K z#PdbQLXlBJM>{Z!q%(6DGktLSk3uj+!NHMe2zGIU3IswO>BVdjUhJnM*dxu2`+s?* z=U3bk^3N~)zD9uxM0`$QN=wg;EZ>d zMtK1l z$|p7FmHi1Rnf0f7a{U!7=>3AK%J%%e+ouj(xSd=++cW-{vTs!m`MhRK+4K1h+0#3e z-TrI9s83XN^Y71dN|Dd4pdv|iD~lqHl+~W!vlo=TjNQm<(=(Jw%)e=~=lAh>b)dxc zWfyk&J2rd%KaK@u|0`RCxm@=5l+B*c^RBo}4L;XmeVaS+SIVBpkDs>}ls&CaE7|S; z9+}jCY|sDq!2b^suo@$6w?A*Q=W~TV6RupP_wFeZ%K&+j*+w#R{P5yQ<_)%APoooPYSn(=QXYGQsqCr&9wiDZNb^g|1TE}hvfhO literal 0 HcmV?d00001 diff --git a/spoj/Random_function.cpp b/spoj/Random_function.cpp new file mode 100644 index 0000000..3e16d73 --- /dev/null +++ b/spoj/Random_function.cpp @@ -0,0 +1,25 @@ +#include +using namespace std; +#define ll long long +int main() +{ + ofstream of; + of.open("AMANPNT Input file #2"); + of<<"100\n"; + for(int i=0;i<100;i++) + { + ll n=rand()%10000 + 2 ; + ll m=rand()%10000 + 1; + of<=PBAi_+|oqphVM1YKhtHhR{PIo8if^?_3 zdxr&6+c2^iZWJ8agqBPvtvgLS)5fhy+i_i{LBb-I-04h7gWZhNxEj|vyK6P=O#i7?bML#~&wjt(-Tm&qeQ)=D^-OciUZ=w$I61{bg1Fh`J_(su zAzHnXRam`PE_}ix?h(s?l;Y=;B}B~}(>Z0DX}OYfftKJ`?=*pWr%z^>e#(ReQ*I$q zs&66rRMw<7R+}tSfmTu?J!)&_9^#00<)Y+9fkgXH~|(Q9Bo#lzDMT)mO|f z>s0%hs_u#h`lH=D>mKM2SNBI_siEqj`kmD~>%7Uhcbn`t*(ceD4;+?FVn2GoQJdG| zM{|J6zwpr0fA`(rZkhVGo5AI`I+u?L0@97!m+eSc$rJQisWcK1ijvce@_JkVy;)^!Jy(U2bR zNg9bra3Bx@RvYRICUheaj2g*6sJXc=J{XBLw|<_=w(Eg-Qa=b_ARdPKMH^|XZ9Zy> z*GFLi)kf+9v8d4`alLnFNFR(OlJQuuKWZG)kJc0tUNEw#hMTs(*k<%60|okZi29@Y z&)sj=o7;Bi=&P(g-k)raW^+R{Hoc*co}{6v75d@WlhIfh$^Q8Vc$`BQg{8n76E6d&nj&$J1?RP$3aTu)_4!w0!L93my#?nrlkE5`I6tch z*DUx70#s_X;BZ_vby)B_vZxSU795VuralYq&Z0sLTJQ=BK4ihI>)Htm&SOAo+VG8X zZM1aD-5#Nhj2opH7rd$sUn!rk7)5q|#~O&tZ&{0L#U>we#P^ZV%=A3cmKDU)kjz|_ zypwnux|wmwe|#5s7x5P){~qx)R5Q;@{yOnAL^Ee4|2FY7G&3h8|0eM?>@$Os|7YT9 zC}z4O{}04t&WV{;$-hE84atm8@)wDxp_r+W{9h4ILonl!{GSs~uAixt{2K5*XTi%< z`?Em$drxTTx3%GSW?S0>ljBz_d_tSN+$G86PgeLurVNU|=&9J$B*e>q2!|ims?URH z!*gye{o|t>UM5rI=GC2JR4_jc;b*1&&I$5rkC*vNRDM`H`EzOD@@*FkXz5w)a%PX_ zcvbt}ZR5_YwUunGVw32cFzY|@8#nLt;5J-+7>bz~8rJ!0>05vt@5`FT1YXFr;XNW% z`tDbumo;{i6y~pX&K!ph<^An#+Q}QO7|F0UTC$~zx{z+p)Q)RsMy7u?Kd+@HGtb?g zpTC6a#2C%3%vKC*`W01v=^gSAgmyuQvD*qO1vWYI0?a^941b4m%PYRp;DVI^%F>rF zZW?*_k@VDu*Drrunx48mw`uDu>8nS^!&@(>r-sL!+IcNKG6k*7`bCI4r1({8_2@a$ z%J$(6YT@4kx#X-goBJgyMlVK3q2QpmBjc)|W zbBY@BO%hm4Lu4PC&U6)O(u<#1n)Du+ru0v!&fl}*Z-OzKa)MxP$^@8U>21f%DNKRP zn#HsTewS0>2jrd6bCU3MmR@?nT89p1a^!CyYmP1D!GeJ4P?EncKk5z9zLVk?a^fCo(V6 zsw6?v+-UQymCbYJO6dPh|D*o&y#KJjz2(f7qizot!!y-SgSG|I9|Y2`w``?`lxvrN z<;r{x=CzTZ8J^l7^7`45zTT4lpa~Y{*Z!+EJmJuGy_>pD54OiT{g3-Q{ZIJyiL(pq z?fVm0*2tcE^wImx=lzG<{0Ev21T?=V5F1Pxo}Orb#PjJ|QCqV@cmzFM92;D_X-`QH zq73|So+z5r2l^JAM=vS=foWLcmDjgf{ zC@VkfD61r#_Vh!r{TUKasj$2d_oAHSHMD7#WZji}-Rt&MtbDTkgxIrw_h+`>yP05; z!Q)CCM;qn)g5OdZ?~9(5}^3_Dim<_6fGJ z@5`>?5|^_Crl_75@EgN4eh4%xb8MlWe+2v^l;3GBZ#B!QjW_Vipgcn54erXXI2+vS zo^v(3J!eW9+*MyL)!a3wmTB(#;j;a1U&3AQch~scRSj+rnTgRd*mUwS#Q zrulit+WYYa((>lAe=ieLWypR)m!-7ifh7+td0@!{OCDJAz>)`+Jh0?}B@g`n@WA*A zpX}%k99U6$Uh$H_MQz*iD4m^C;&M7Gr*wxkOY=2j{GnzH}vis$dF8x+rHw(Au? zr@q6|zKRm<)hPY)_I#Y^d8dy^_M7kN5|ih%?s2Ed(;k+RS8ay)ta_aZ3%M6lc_J>( zV{cE1_fV~>f4m>1gIY>=n?wwi`DBjqF2!@Zxjs6;rNlh8X|g}l%X|{YR$21gj#ea%-(*^Mj zfcqHsZ0k6!vxIlqa0=fc{COKr=TQ!^ z&`w_G+a#Xv&*RF@xXlh7qB{zV%bx%*)US(DeuJR1RZ3j%YsgbOKXm&DMl_O{J^~?} zpI^M57xUXH6gUuRaMd<{Hb^|*pHxescHS==mOpPFly>sxgZcben>P=G(oX)oHKd*V zc{qy)l1JpvtEV6@&o@oCWUpV7xLeTIJWBjL`vo#<;5Uxv;xpH8Lf#`Kb1#2g1pfnR zKmUH8lz6TU;%*ed={x#nv}d1cC--HGY-hfmJqoAecWVj*_gDdyKT*WacY&|QS9@NU zN|gMyB6fZbyt07*KOsBL^?CPonajlKgMl@z1y25_&#ROo@{03ji7UoJx`0<&?nf@_ zFCu@b2>xaf{Bev6*?->C#ik{_Swy}Xj^Z)0D(nGH{;{ubdzCyLu3J-Y5j*8_p11{l zccw&V@02#m_7r%2g%U>6NcHr15vro^Ydoa41lrmWA+!((q#FZzh(du7BBY1odT)Qc zJJ_#>jd&ud2U9~L6dxGuj~J1#_j5aT)fE=fd!n(Z9!w;H$Mi_dNE{PAiQqs)52pqO zjzPu3>5w#XL=Pd8jo%Bh6V=_PSa+z)a!aQPV!*uYIO>PF%XADNE8u3 z$H5`$3F-)JLTpY->gzR8MB_Z%a!C7%Axv&Lgl+ zZ`PE6)^sRq;Naf9ZO!d^yT75OnUr!`PZ2s6K!#rlz3B@F{QCoq*@&R1&nLrmR5XqX z>Io%N(rYmB-^XrI099^86a_gIv}?wIQHNDAqJ$_mh#VSE}Cd4 zk^j}yT5O10fxheA$s|{}=qR`1p>np4lVwYU*uvo8HbiX{cs68HS#%@vClH04EmR@r zOoSXtGc+&o&gZiPo8`v1!G?-b6W-*p0VCKAY9vhB$GK<>!HI*y8;cteFQV3}jbN|h zdSfYXcPff#*=SgJiR%j{`-C@qECzcfH4yN{k)cpz(9qEj%pz&bT*gcroc~e?il{g^ z5Dh^uZcv3l$dO*m7U9K$I)FveT)F>uS9*WNBO&|#!uvIj6X$aRu7zZ+>C<3nZ;r>b zOuVmaSAa+1Ow{9sSy79eRiF2NhSI+`D`{rz`b~g8z+Rr~KkxKO!Sf2JlH9_1M!Djd z96)9zeyl(4^npXXtOBM~hw1!-vaHYN437fCqcf||`_9vq6Z zKYd9ZxZJ1oN)=@}rbmF&SqJmHkDXTfCzKws)J|@{f(7j_sHv>a``s>e;KKdn`dOdx zXO(_~GRWsOLrR~|cSxW1Puxie^|%vzi-?0`TrjH{~=mfQBk}8m`$J06*^Q$f6F%E?f!es zrqAaO*HjQK&ogd@&7All3Mjsn<~Aihr{Mpuu>0Fy|4*Squ3~*Y&zQT1tS!t}lgsDd zM*+2o^|R+58%+&+eRh5hVtj9s2A_}c|G&(t4)guN`rNPc(6QFf=O}ZV$Xb4TS)VEW zE0R?|d*0%a>f*FXvRBq)O8>86)#r1W(@LM)$p%=D`AR4g#{T2|&3UD7m#4a{=}uLD zjTJocWk#&ugoAE-9DjV!1NZLI7&-+Na5s~(e^R_h=Q$9DX +using namespace std; +#define ll long long +int main() +{ + ofstream of; + of.open("KAUSANDNIHA Input file #1"); + of<<"10\n"; + for(int i=0;i<10;i++) + { + ll n=rand()%100 + 2 ; + ll m=rand()%100 + 1; + of<z%V3-G2bJry##@@}nwxy7gs)NdoBWgRj$M7SB_2mFB zAw6V7$78V2NmF%fECg>mIy+k1^hRG(uGHw;YL@rx(YF8xnaje7IZQK^=Co7&lOpD= zQ=CDO=2<FuEyH|3o4R6k+JD{&|I0 z3{63n)bM^s=Cud3%%8Q1zb~zFmkHhA{wr zS{=PdZDP@_W!~Pu?ges1-LCFGO%>VmP<~kY@1Lb!4*6I zXXftE94~3FT{hO{yj8Nds`a9O)@=Xqmoh88LZqwvU^o{?VEr$Z?+4`gP_}g1gAblI zafe8kzxM>}a?U;=gY2vQ^9Nx=WxO$OM4K$zu#tk#1Q#1-&IT`1(Ax3f1ugTE?8@A) zFK4rp!3)Q`vYEaMM`x=^;|7# z%_t^!E=II1t7LYKMpHnzyuxS%O^ z^$~&*|LxZL1F~A$(+bd0zt&pcW!97L6LiI|@;MS1?F;`B1VMEHzxLixK|qIBOHkfn7>=JQRhk}L3eA)@_( z2wQ=qk1l5uRG4=9iRJEmHD#vEXO5Shro0k5MAxc7D@{?&m+?vwkGY+?p?L_uxkJ86BEM;zYLCMXkUb*?7Grq^# z8#<@n>pO~HQhXUcmPA)6{sqOG6_=HkpB-&&w|Y1B4W{Ep+Pl@)!fj zze0SuDD~c4n9cmY3-wnBo;QW~%G~@a#4B^_tPo!%X4HEr#IF$k67Rz$+_}6?p?;O% zbz6vg#524*e_0%J|B7Kiyc=fdjb z`%xi|)u+~XA%3;!Dv9Us&4v2Bd*xBuX3E3|I4Kqq-FY0MIDXm>of!Yaw)aAw37@gy zK7|Y0zT7VT*NQ2eT#0yJ?vdr<@jM8e{PTWKHblqpI7IP#`7!WP{d!jF*9tl@6LGsU zD3kx!RGjkc25dp${C(m5cd2nJLxltLXJe%wmU&t&@#66$jZ$%5Cj%>z-y`Iv72FO^UFfyCW{ZjD6zefS{?t1-@; zm)$IDg?JYFURAcTnI-U_NdLv_{dI|3J(%TxEP>a^c#8EK6>iTn-2>cPtS(Z(tC98K zeWpz5e0>T1CxLrPjPujv$9Z)w@5N31Li#VxZ~a#3(>2gazXwj^OxJaysQkrcAGpVo zS5vU~Nb0kc=hZl1lzP8C7*Fyut=17+Y=S=Zi>~ojq78=Pp}Yanr2G})FS6Yd--U3} zNEzv&Azv7&tvlPg_0Eo-US#a@i8{hLWMNs2)j=jU9lAMbe>Z6sY!e+#77$ zy~`Kgw@>EoI$Lx-mLN5VO$|C_{!DHp&6@qu zWD3)_K+sW_jE;uLK$Z558p0>L=0njpoPdZFHGXNSK`9{v_C-h3;u?v-2}`D_xynon zE`KEqH8c|%i-i$G!XWoRsP{gMq3~h7k6{g~o#nq{be_Q$m-}w$(Pq`UD;cT=|K`$mlll<&8ucK#g3@&hQ) z-IDG3Uea7{YVi0gG1m_3?}ZxORaxfy%N}LWr5d96Nr&TCu%PoMh06AP&pD~=HKoYy zvpx6!VP)T{^!UELpbSo0?8(M%{}?bDSI!S`eqveyoOe)eWUO2!p21_apIPQ7822p6 z#9@==emS4P{M)Fp+VefkPm>bF@tRVx{5@1y?fJadrR=+TV3h-Im;L?7X3zJ!6DlFW zc?s61cV(rgAyE5#cHwi`Gs@7e&oXoKo{)e4d{5-RXSZ7$Lz(RuK8*sk&)wwv8h=|Yc{P%79c-igWfK3%1w&(k41vv%T_3iSXphF?DJ>O$JpVIyv z*wR#Ed(O}B|35gd`md&AE*|dJw5@%<7cWw$K=yc9X8w2RSmV##pH%~0(o6n_?U*mx z?D?MErR+IQ_P};5Uq*p2?mwT02b3XyM_Av>1;t$mp5m{!;cVYz!_{y~8>*_t!)+I+ usuaK~Hc*u|QTpMzYqg)|_|-bT4wa2~xc|KW(KIjB{;MhhS#PVfxBo9Cf`PXH literal 0 HcmV?d00001 diff --git a/spoj/SIZECON.cpp b/spoj/SIZECON.cpp new file mode 100644 index 0000000..f19480f --- /dev/null +++ b/spoj/SIZECON.cpp @@ -0,0 +1,12 @@ +#include +int main() +{ int t,sum=0,n; + std::cin>>t; + while(t--) + { + std::cin>>n; + if(n>0) + sum+=n; + } + std::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 +using namespace std; +#define SIZE 1000005 +int n; +string s; + +struct trees +{ + int ans; + int open; + int close; +}; + +trees tree[SIZE<<3]; + +trees merge(trees a,trees b) +{ + trees res; + int temp=min(a.open,b.close); + res.ans=a.ans+b.ans+2*temp; + res.open=a.open+b.open-temp; + res.close=a.close+b.close-temp; + return res; +} + +void build(int node,int start,int end) +{ + if(start==end) + { + if(s[start-1]=='(') + { + tree[node].ans=0; + tree[node].open=1; + tree[node].close=0; + } + else + { + tree[node].ans=0; + tree[node].open=0; + tree[node].close=1; + } + return; + } + int mid=(start+end)>>1; + build(2*node,start,mid); + build(2*node+1,mid+1,end); + tree[node]=merge(tree[2*node],tree[2*node+1]); +} + +trees query(int node,int start,int end, int l , int r) +{ + if(start>end || start>r || end>1; + return merge(query(2*node,start,mid,l,r),query(2*node+1,mid+1,end,l,r)); +} + +int main() +{ + cin>>s; + n=s.length(); + + build(1,1,n); + + /*for(int i=1;i<=2*n-1;i++) + { + printf("%d %d %d\n", tree[i].ans, tree[i].open, tree[i].close); + }*/ + + int m; + scanf("%d",&m); + + for(int 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 +using namespace std; +#define ll long long + +vector v; + +int main() +{ + // sievefunc(); + ll a[36]; + ll mul = 1; + for(int i=0;i<36;i++) + { + a[i] = mul; + mul *= 2; + } + for(int i=0;i<=35;i++) + { + for(int j=0;j<=35;j++) + { + if(i!=j) + v.push_back(a[i]+a[j]); + } + } + sort( v.begin(), v.end() ); + v.erase( unique( v.begin(), v.end() ), v.end() ); + + + int t; + scanf("%d", &t); + + while(t--) + { + ll n; + ll count; + scanf("%lld", &n); + long i = 0, temp = 0; + while(1) + { + if(v[i] < n) + { + temp = i; + i++; + continue; + } + break; + } + // cout<=0) + // { + // printf("%lld\n", n-v[k-1]); + // } + // else if(n-v[k-1]>v[k]-n && (v[k]-n)>=0) + // { + // printf("%lld\n", v[k]-n); + // } + ll lb = v[temp]; + ll ub = v[temp+1]; + ll ans = min(abs(n - lb), abs(ub - n)); + cout<LruIpA_9NTF;96Pd~ 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 +using namespace std; + +int main() +{ + int t; + scanf("%d", &t); + while(t--) + { + char a,b,c,d,e,f; + cin>>a>>b>>c; + cin>>d>>e>>f; + + // int countb=0, counto=0; + + + if((a=='o' || d=='o') && (b=='b' || e=='b') && (c=='b' || f=='b')) + { + printf("yes\n"); + } + else if((a=='b' || d=='b') && (b=='o' || e=='o') && (c=='b' || f=='b')) + { + printf("yes\n"); + } + else if((a=='b' || d=='b') && (b=='b' || e=='b') && (c=='o' || f=='o')) + { + printf("yes\n"); + } + else + { + printf("no\n"); + } + } + + return 0; +} \ No newline at end of file diff --git a/spoj/UPDATEIT b/spoj/UPDATEIT new file mode 100755 index 0000000000000000000000000000000000000000..d4eace82dca43b1a67aba56e7f924f287d337dd9 GIT binary patch literal 9472 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 +using namespace std; +#define MAXN 10005 + +long long BIT[MAXN]; +int t,n,u,l,r,val,q,id; +long long a[MAXN]; + + +inline void superFastRead (int *a) +{ + char c = 0; + while(c<33) + c = fgetc(stdin); + *a = 0; + while(c>33) + { + *a = *a*10 + c - '0'; + c = fgetc(stdin); + } +} + +void update(long long x,long long val) +{ + for(;x<=n;x+= x&-x) + { + BIT[x]+=val; + } +} + +long long query(long long x) +{ + long long sum=0; + for(;x>0;x-= x&-x) + { + sum+=BIT[x]; + } + + return sum; +} + +int main() +{ superFastRead(&t); + while(t--){ + superFastRead(&n); + superFastRead(&u); + memset(BIT,0,sizeof(BIT)); + for(long long i=0;i!_EsX-Jva>?CeqrnC!5I=XJzi(@;9!Lc*@ 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 literal 0 HcmV?d00001 diff --git a/spoj/UPDATEITtest.cpp b/spoj/UPDATEITtest.cpp new file mode 100644 index 0000000..d2d694a --- /dev/null +++ b/spoj/UPDATEITtest.cpp @@ -0,0 +1,62 @@ +#include +#include +#include +#include +using namespace std; + +inline void superFastRead (int *a) +{ + char c = 0; + while(c<33) + c = fgetc(stdin); + *a = 0; + while(c>33) + { + *a = *a*10 + c - '0'; + c = fgetc(stdin); + } +} + +int tree[40003]; +int t,n,u,q,id,l,r,val; + +int read(int idx){ + int sum = 0; + while (idx > 0){ + sum += tree[idx]; + idx -= (idx & -idx); + } + return sum; +} + +void update(int idx ,int val){ + while (idx <= n){ + tree[idx] += val; + idx += (idx & -idx); + } +} + +int main() +{ superFastRead(&t); + while(t--) + { superFastRead(&n); + superFastRead(&u); + memset(tree,0,sizeof tree); + for(int i=0;i-E`UhS@=Evwzl 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 literal 0 HcmV?d00001 diff --git a/spoj/USUBQSUB.cpp b/spoj/USUBQSUB.cpp new file mode 100644 index 0000000..dbaa6b6 --- /dev/null +++ b/spoj/USUBQSUB.cpp @@ -0,0 +1,105 @@ +//trying with range update on BIT +#include +using namespace std; +#define ll long long + +int BIT[5][1005][1005]; +ll n,m; + +void update(int no,int x,int y,ll val) +{ + for(;x<=n;x+=x&-x) + { + for(int y1=y;y1<=n;y1+=y1&-y1) + { + BIT[no][x][y1]+=val; + } + } +} + +ll query(int no, int x,int y) +{ + ll sum=0; + for (; x>0 ; x-=x&-x) + { + for(int y1=y;y1>0; y1-=y1&-y1) + { + sum+=BIT[no][x][y1]; + } + } + return sum; +} + +void update_range2D(int x1,int y1,int x2,int y2,int val) +{ + //updating the first tree + update(0, x1, y1, val); + update(0, x1, y2+1, -val); + update(0, x2+1, y1, -val); + update(0, x2+1, y2+1, val); + + // updating second tree + update(1, x1, y1, val*(1-y1)); + update(1, x1, y2+1, val*y2); + update(1, x2+1, y1, val*(y1-1)); + update(1, x2+1, y2+1, -val*y2); + + // updating third tree + update(2, x1, y1, val*(1-x1)); + update(2, x1, y2+1, (x1-1)*val); + update(2, x2+1, y1, val*x2); + update(2, x2+1, y2+1, -x2*val); + + // updating fourth tree + update(3, x1, y1, (x1-1)*(y1-1)*val); + update(3, x1, y2+1, -y2*(x1-1)*val); + update(3, x2+1, y1, -x2*(y1-1)*val); + update(3, x2+1, y2+1, x2*y2*val); +} + +ll query_n(int x,int y) +{ + return query(0,x,y)*x*y+query(1,x,y)*x+query(2,x,y)*y+query(3,x,y); +} + +ll query_range2D(int x1, int y1, int x2, int y2) { + ll sum = 0; + sum += query_n(x2, y2) - query_n(x1-1, y2) - query_n(x2, y1-1) + query_n(x1-1, y1-1); + return sum; +} + +int main() +{ + scanf("%lld %lld", &n, &m); + + int type,x1,x2,y1,y2,k; + while(m--) + { + scanf("%d %d %d %d %d", &type,&x1, &y1, &x2, &y2); + if(type==2) + { + scanf("%d",&k); + update_range2D(x1,y1,x2,y2,k); + + /*for(int k=0;k<4;k++) + { + printf("Tree No. : %d\n", k); + for(int i=0;iQps^`G0n0l&y+}6TqIH< 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 literal 0 HcmV?d00001 diff --git a/spoj/USUBQSUBtest.cpp b/spoj/USUBQSUBtest.cpp new file mode 100644 index 0000000..c175402 --- /dev/null +++ b/spoj/USUBQSUBtest.cpp @@ -0,0 +1,103 @@ +#include +#include +typedef long long int lli; + +/*lli ***bit;*/ +lli bit[5][1005][1005]; +int n, m; + +void update(int no, int x, int y, lli val) { + while (x <= n) { + int y1 = y; + while (y1 <= n) { + bit[no][x][y1] += val; + y1 += y1 & (-y1); + } + x += x & (-x); + } +} + +lli query(int no, int x, int y) { + lli sum = 0; + while (x > 0) { + int y1 = y; + while (y1 > 0) { + sum += bit[no][x][y1]; + y1 -= y1 & (-y1); + } + x -= x & (-x); + } + return sum; +} + +void update_r(int x1, int y1, int x2, int y2, int val) { + // updating first tree + update(0, x1, y1, val); + update(0, x1, y2+1, -val); + update(0, x2+1, y1, -val); + update(0, x2+1, y2+1, val); + + // updating second tree + update(1, x1, y1, val*(1-y1)); + update(1, x1, y2+1, val*y2); + update(1, x2+1, y1, val*(y1-1)); + update(1, x2+1, y2+1, -val*y2); + + // updating third tree + update(2, x1, y1, val*(1-x1)); + update(2, x1, y2+1, (x1-1)*val); + update(2, x2+1, y1, val*x2); + update(2, x2+1, y2+1, -x2*val); + + // updating fourth tree + update(3, x1, y1, (x1-1)*(y1-1)*val); + update(3, x1, y2+1, -y2*(x1-1)*val); + update(3, x2+1, y1, -x2*(y1-1)*val); + update(3, x2+1, y2+1, x2*y2*val); +} + +lli query_n(int x, int y) { + return query(0, x, y) * x * y + query(1, x, y) * x + query(2, x, y) * y + query(3, x, y); +} + +lli query_r(int x1, int y1, int x2, int y2) { + lli sum = 0; + sum += query_n(x2, y2) - query_n(x1-1, y2) - query_n(x2, y1-1) + query_n(x1-1, y1-1); + return sum; +} + +int main(void) { + scanf("%d %d", &n, &m); + /*bit = (lli ***) calloc(5, sizeof(lli***)); + int i, j; + for (i = 0; i < 4; i++) { + bit[i] = (lli **) calloc(n+10, sizeof(lli**)); + for (j = 0; j < n+10; j++) + bit[i][j] = (lli *) calloc(n+10, sizeof(lli)); + }*/ + int type, x1, x2, y1, y2, val; + while (m--) { + scanf("%d %d %d %d %d", &type, &x1, &y1, &x2, &y2); + if (type == 1) { + printf("%lld\n", query_r(x1, y1, x2, y2)); + } + else { + scanf("%d", &val); + update_r(x1, y1, x2, y2, val); + for(int k=0;k<4;k++) + { + printf("Tree No. : %d\n", k); + for(int i=0;iX#RG`&Wi^fbSauh&HDB3% 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 Ay#N3J literal 0 HcmV?d00001 diff --git a/spoj/WINDVANE.cpp b/spoj/WINDVANE.cpp new file mode 100644 index 0000000..a04e035 --- /dev/null +++ b/spoj/WINDVANE.cpp @@ -0,0 +1,146 @@ +#include +using namespace std; + +int m,n,c; +int BIT[1005][1005]; +int eq[1005][1005]; + +void update(int x, int y, int val) +{ + for(;x<=n;x+=x&-x) + { + for(int y1=y;y1<=m ;y1+=y1&-y1) + { + BIT[x][y1]+=val; + //BIT[x][y]%=4; + //BIT[x][y]+=1; + } + } +} + +int query(int x, int y) +{ + int sum=0; + int val=eq[x][y]; + for(;x>0;x-=x&-x) + { + for(int y1=y;y1>0;y1-=y1&-y1) + { + sum+=BIT[x][y1]; + } + } + return sum+val; //range update only works for initial value 0 in BIT (or in this case?) +} + +/*void update1(int x, int y, int val) +{ + for(;x<=n;x+=x&-x) + { + for(int y1=y;y1<=m ;y1+=y1&-y1) + { + BIT[x][y1]+=val; + + } + } +}*/ + +int main() +{ + char ch; + scanf("%d %d", &n, &m); + + for(int i=1;i<=n;i++) + { + for(int j=1;j<=m;j++) + { + cin>>ch; + if(ch=='N') + { + // update(i,j,1); + eq[i][j]=1; + } + else if(ch=='E') + { + // update(i,j,2); + eq[i][j]=2; + } + else if(ch=='S') + { + // update(i,j,3); + eq[i][j]=3; + } + else if(ch=='W') + { + // update(i,j,4); + eq[i][j]=4; + } + } + } + + scanf("%d", &c); + + int x1,y1,x2,y2,d,val; + int ans; + + /*for(int i=1;i<=n;i++) + { + for(int j=1;j<=m;j++) + { + printf("%d ",query(i,j)-query(i-1,j)-query(i, j-1)+query(i-1, j-1)); + } + printf("\n"); + }*/ + + char a; + while(c--) + { + cin>>a; + // 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 literal 0 HcmV?d00001 diff --git a/spoj/WINDVANEtest.cpp b/spoj/WINDVANEtest.cpp new file mode 100644 index 0000000..4da3488 --- /dev/null +++ b/spoj/WINDVANEtest.cpp @@ -0,0 +1,90 @@ +#include +using namespace std; +int m, n; +int **bit; +char mat[2000][2000]; +int eq[2000][2000]; + +void update(int x, int y, int val) { + while (x <= m) { + int y1 = y; + while (y1 <= n) { + bit[x][y1] += val; + y1 += y1 & (-y1); + } + x += x & (-x); + } +} + +int query(int x, int y) { + int ans = 0; + int val = eq[x][y]; + while (x > 0) { + int y1 = y; + while (y1 > 0) { + ans += bit[x][y1]; + y1 -= y1 & (-y1); + } + x -= x & (-x); + } + return ans + val; +} + +void update_r(int x1, int y1, int x2, int y2, int val) { + update(x1, y1, val); + update(x1, y2+1, -val); + update(x2+1, y1, -val); + update(x2+1, y2+1, val); +} + +int main(void) { + scanf("%d %d", &m, &n); + bit = (int**) calloc(m+10, sizeof(int*)); + for (int i = 0; i < m+10; i++) + bit[i] = (int*) calloc(n+10, sizeof(int)); + for (int i = 1; i <= m; i++) { + scanf("%s", mat[i]+1); + for (int j = 1; j <= n; j++) { + if (mat[i][j] == 'N') + eq[i][j] = 1; + else if (mat[i][j] == 'E') + eq[i][j] = 2; + else if (mat[i][j] == 'S') + eq[i][j] = 3; + else if (mat[i][j] == 'W') + eq[i][j] = 4; + } + } + int q; + scanf("%d", &q); + char type[10]; + int x1, y1, x2, y2, val; + while (q--) { + scanf("%s", type); + if (type[0] == 'C') { + scanf("%d %d %d %d %d", &x1, &y1, &x2, &y2, &val); + int update; + if (val == 0) + update = 1; + else + update = -1; + update_r(x1, y1, x2, y2, update); + } + else { + scanf("%d %d", &x1, &y1); + int val = query(x1, y1); + int mod = val % 4; + if (mod < 0) + mod += 4; + if (mod == 1) + printf("N\n"); + else if (mod == 2) + printf("E\n"); + else if (mod == 3) + printf("S\n"); + else if (mod == 0) + printf("W\n"); + } + } + return 0; +} \ No newline at end of file diff --git a/spoj/chandan b/spoj/chandan new file mode 100755 index 0000000000000000000000000000000000000000..565432c8d26d87429f3f89c5a3bcd50d44495e96 GIT binary patch literal 9168 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 +using namespace std; + +#define INF INT_MAX + +int msk=0,n,m,home; + +long long src[20],dest[20]; +long long dist[101][101],dp[1<<12][101]; + +void floyd_warshall(int n) +{ + for(int k=0;k>t; + while(t--) + { + int x,y,c; + clear(); + cin>>n>>m>>home; + for(int i=0;i>x>>y>>c; + dist[x-1][y-1]=dist[y-1][x-1]=c; + } + floyd_warshall(n); + int q;msk=0;int k=0; + cin>>q; + for(int i=0;i>x>>y>>c; + // msk+=c; + while(c--) + { + src[k]=x-1,dest[k]=y-1; + k++; + } + + } + msk=k; + cout< +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace pretty_print +{ + namespace detail + { + // SFINAE type trait to detect whether T::const_iterator exists. + + struct sfinae_base + { + using yes = char; + using no = yes[2]; + }; + + template + struct has_const_iterator : private sfinae_base + { + private: + template static yes & test(typename C::const_iterator*); + template static no & test(...); + public: + static const bool value = sizeof(test(nullptr)) == sizeof(yes); + using type = T; + }; + + template + struct has_begin_end : private sfinae_base + { + private: + template + static yes & f(typename std::enable_if< + std::is_same(&C::begin)), + typename C::const_iterator(C::*)() const>::value>::type *); + + template static no & f(...); + + template + static yes & g(typename std::enable_if< + std::is_same(&C::end)), + typename C::const_iterator(C::*)() const>::value, void>::type*); + + template static no & g(...); + + public: + static bool const beg_value = sizeof(f(nullptr)) == sizeof(yes); + static bool const end_value = sizeof(g(nullptr)) == sizeof(yes); + }; + + } // namespace detail + + + // Holds the delimiter values for a specific character type + + template + struct delimiters_values + { + using char_type = TChar; + const char_type * prefix; + const char_type * delimiter; + const char_type * postfix; + }; + + + // Defines the delimiter values for a specific container and character type + + template + struct delimiters + { + using type = delimiters_values; + static const type values; + }; + + + // Functor to print containers. You can use this directly if you want + // to specificy a non-default delimiters type. The printing logic can + // be customized by specializing the nested template. + + template , + typename TDelimiters = delimiters> + struct print_container_helper + { + using delimiters_type = TDelimiters; + using ostream_type = std::basic_ostream; + + template + struct printer + { + static void print_body(const U & c, ostream_type & stream) + { + using std::begin; + using std::end; + + auto it = begin(c); + const auto the_end = end(c); + + if (it != the_end) + { + for ( ; ; ) + { + stream << *it; + + if (++it == the_end) break; + + if (delimiters_type::values.delimiter != NULL) + stream << delimiters_type::values.delimiter; + } + } + } + }; + + print_container_helper(const T & container) + : container_(container) + { } + + inline void operator()(ostream_type & stream) const + { + if (delimiters_type::values.prefix != NULL) + stream << delimiters_type::values.prefix; + + printer::print_body(container_, stream); + + if (delimiters_type::values.postfix != NULL) + stream << delimiters_type::values.postfix; + } + + private: + const T & container_; + }; + + // Specialization for pairs + + template + template + struct print_container_helper::printer> + { + using ostream_type = typename print_container_helper::ostream_type; + + static void print_body(const std::pair & c, ostream_type & stream) + { + stream << c.first; + if (print_container_helper::delimiters_type::values.delimiter != NULL) + stream << print_container_helper::delimiters_type::values.delimiter; + stream << c.second; + } + }; + + // Specialization for tuples + + template + template + struct print_container_helper::printer> + { + using ostream_type = typename print_container_helper::ostream_type; + using element_type = std::tuple; + + template struct Int { }; + + static void print_body(const element_type & c, ostream_type & stream) + { + tuple_print(c, stream, Int<0>()); + } + + static void tuple_print(const element_type &, ostream_type &, Int) + { + } + + static void tuple_print(const element_type & c, ostream_type & stream, + typename std::conditional, std::nullptr_t>::type) + { + stream << std::get<0>(c); + tuple_print(c, stream, Int<1>()); + } + + template + static void tuple_print(const element_type & c, ostream_type & stream, Int) + { + if (print_container_helper::delimiters_type::values.delimiter != NULL) + stream << print_container_helper::delimiters_type::values.delimiter; + + stream << std::get(c); + + tuple_print(c, stream, Int()); + } + }; + + // Prints a print_container_helper to the specified stream. + + template + inline std::basic_ostream & operator<<( + std::basic_ostream & stream, + const print_container_helper & helper) + { + helper(stream); + return stream; + } + + + // Basic is_container template; specialize to derive from std::true_type for all desired container types + + template + struct is_container : public std::integral_constant::value && + detail::has_begin_end::beg_value && + detail::has_begin_end::end_value> { }; + + template + struct is_container : std::true_type { }; + + template + struct is_container : std::false_type { }; + + template + struct is_container> : std::true_type { }; + + template + struct is_container> : std::true_type { }; + + template + struct is_container> : std::true_type { }; + + + // Default delimiters + + template struct delimiters { static const delimiters_values values; }; + template const delimiters_values delimiters::values = { "[", ", ", "]" }; + template struct delimiters { static const delimiters_values values; }; + template const delimiters_values delimiters::values = { L"[", L", ", L"]" }; + + + // Delimiters for (multi)set and unordered_(multi)set + + template + struct delimiters< ::std::set, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::set, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::set, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::set, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::multiset, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::multiset, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::multiset, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::multiset, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::unordered_set, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_set, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::unordered_set, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_set, wchar_t>::values = { L"{", L", ", L"}" }; + + template + struct delimiters< ::std::unordered_multiset, char> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_multiset, char>::values = { "{", ", ", "}" }; + + template + struct delimiters< ::std::unordered_multiset, wchar_t> { static const delimiters_values values; }; + + template + const delimiters_values delimiters< ::std::unordered_multiset, wchar_t>::values = { L"{", L", ", L"}" }; + + + // Delimiters for pair and tuple + + template struct delimiters, char> { static const delimiters_values values; }; + template const delimiters_values delimiters, char>::values = { "(", ", ", ")" }; + template struct delimiters< ::std::pair, wchar_t> { static const delimiters_values values; }; + template const delimiters_values delimiters< ::std::pair, wchar_t>::values = { L"(", L", ", L")" }; + + template struct delimiters, char> { static const delimiters_values values; }; + template const delimiters_values delimiters, char>::values = { "(", ", ", ")" }; + template struct delimiters< ::std::tuple, wchar_t> { static const delimiters_values values; }; + template const delimiters_values delimiters< ::std::tuple, wchar_t>::values = { L"(", L", ", L")" }; + + + // Type-erasing helper class for easy use of custom delimiters. + // Requires TCharTraits = std::char_traits and TChar = char or wchar_t, and MyDelims needs to be defined for TChar. + // Usage: "cout << pretty_print::custom_delims(x)". + + struct custom_delims_base + { + virtual ~custom_delims_base() { } + virtual std::ostream & stream(::std::ostream &) = 0; + virtual std::wostream & stream(::std::wostream &) = 0; + }; + + template + struct custom_delims_wrapper : custom_delims_base + { + custom_delims_wrapper(const T & t_) : t(t_) { } + + std::ostream & stream(std::ostream & s) + { + return s << print_container_helper, Delims>(t); + } + + std::wostream & stream(std::wostream & s) + { + return s << print_container_helper, Delims>(t); + } + + private: + const T & t; + }; + + template + struct custom_delims + { + template + custom_delims(const Container & c) : base(new custom_delims_wrapper(c)) { } + + std::unique_ptr base; + }; + + template + inline std::basic_ostream & operator<<(std::basic_ostream & s, const custom_delims & p) + { + return p.base->stream(s); + } + + + // A wrapper for a C-style array given as pointer-plus-size. + // Usage: std::cout << pretty_print_array(arr, n) << std::endl; + + template + struct array_wrapper_n + { + typedef const T * const_iterator; + typedef T value_type; + + array_wrapper_n(const T * const a, size_t n) : _array(a), _n(n) { } + inline const_iterator begin() const { return _array; } + inline const_iterator end() const { return _array + _n; } + + private: + const T * const _array; + size_t _n; + }; + + + // A wrapper for hash-table based containers that offer local iterators to each bucket. + // Usage: std::cout << bucket_print(m, 4) << std::endl; (Prints bucket 5 of container m.) + + template + struct bucket_print_wrapper + { + typedef typename T::const_local_iterator const_iterator; + typedef typename T::size_type size_type; + + const_iterator begin() const + { + return m_map.cbegin(n); + } + + const_iterator end() const + { + return m_map.cend(n); + } + + bucket_print_wrapper(const T & m, size_type bucket) : m_map(m), n(bucket) { } + + private: + const T & m_map; + const size_type n; + }; + +} // namespace pretty_print + + +// Global accessor functions for the convenience wrappers + +template +inline pretty_print::array_wrapper_n pretty_print_array(const T * const a, size_t n) +{ + return pretty_print::array_wrapper_n(a, n); +} + +template pretty_print::bucket_print_wrapper +bucket_print(const T & m, typename T::size_type n) +{ + return pretty_print::bucket_print_wrapper(m, n); +} + + +// Main magic entry point: An overload snuck into namespace std. +// Can we do better? + +namespace std +{ + // Prints a container to the stream using default delimiters + + template + inline typename enable_if< ::pretty_print::is_container::value, + basic_ostream &>::type + operator<<(basic_ostream & stream, const T & container) + { + return stream << ::pretty_print::print_container_helper(container); + } +} + +#endif // H_PRETTY_PRINT diff --git a/spoj/topics to cover b/spoj/topics to cover new file mode 100644 index 0000000..5fed1b4 --- /dev/null +++ b/spoj/topics to cover @@ -0,0 +1,12 @@ + ADHOC/Implementation/Greedy + Math(Combinatorics, Euclidean GCD, Modular Exponentiation, Euler Totient Function etc). Codemonk material should be sufficient. + Binary Search + C++ STL & basic data structures(Stack, Queue etc) + Sliding Window/Two Pointers + DFS/BFS + DSU + Backtracking(Josephus Algorithm, N Queen Problem etc) + Dynamic Programming + Other Graph Algorithms(SCC, MST, Shortest Parths) + String Algorithms(Hashing, KMP, Rabin Karp) + Advanced Data Structures(Segment Trees, Binary Indexed Trees, Tries etc) diff --git a/spoj/try.py b/spoj/try.py new file mode 100644 index 0000000..738cf16 --- /dev/null +++ b/spoj/try.py @@ -0,0 +1,11 @@ +def matrix(): + #for 15 lists each with 10 elements i.e. 15 rows and 10 columns + w,h=10,15 + + matrix=[[0 for x in range(w)] for y in range(h)] + + #initalising + matrix[0][0]=1 + print matrix[0][0] + +matrix() \ No newline at end of file

qMJj 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 iAm_qy1wMuND7#TEql4npZG5eg$=VS-k77NX literal 0 HcmV?d00001 diff --git a/spoj/KQUERY#2 b/spoj/KQUERY#2 new file mode 100755 index 0000000000000000000000000000000000000000..497ac19295e4270dbef2e87fbe00dbabd8e7d42a GIT binary patch literal 29416 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 +using namespace std; +#define SIZE 30005 + +int BIT[SIZE]; +int n,qu; + +struct trees +{ + int sum; +}; + +trees tree[SIZE<<3]; + +struct kquery +{ + int l; + int r; + int k; + int num; +}q[200005]; + +struct num +{ + int index; + int val; +}a[SIZE]; + +trees merge(trees a, trees b) +{ + trees res; + res.sum=a.sum+b.sum; + return res; +} + +bool cmp(num a, num b) +{ + return a.val>b.val; +} + +bool cmp1(kquery a,kquery b) +{ + if(a.k==b.k) + { + return a.r>b.r; + } + return a.k>b.k; +} + +/*void build(int node,int start,int end) +{ + if(start==end) + { + tree[node].sum=0; + return; + } + int mid=start+end>>1; + build(2*node,start,mid); + build(2*node+1,mid+1,end); + tree[node]=merge(tree[2*node],tree[2*node+1]); +} +*/ +void update(int node,int start,int end,int x) +{ + if(start==x && end==x) + { + tree[node].sum+=1; + return; + } + if(start>end || start>x || end>1; + update(2*node,start,mid,x); + update(2*node+1,mid+1,end,x); + tree[node]=merge(tree[2*node],tree[2*node+1]); +} + +trees query(int node,int start,int end, int l, int r) +{ + if(start>end || start>r || l>end) + return (trees){0}; + if(l<=start && end<=r) + return tree[node]; + int mid=start+end>>1; + return merge(query(2*node,start,mid,l,r),query(2*node+1,mid+1,end,l,r)); +} + +int main() +{ + scanf("%d",&n); + + for(int i=1;i<=n;i++) + { + scanf("%d",&a[i].val); + a[i].index=i; + //BIT[i]=0; + } + sort(a+1,a+1+n,cmp); + + scanf("%d",&qu); + + int result[qu+5]; + + for(int i=1;i<=qu;i++) + { + scanf("%d %d %d",&q[i].l,&q[i].r,&q[i].k); + q[i].num=i; + } + + sort(q+1,q+1+qu,cmp1); + + int j=1; + for(int i=1;i<=qu;i++) + { + while(j<=n && a[j].val>q[i].k) + { + update(1,1,n,a[j].index); + j++; + } + result[q[i].num]=query(1,1,n,q[i].l,q[i].r).sum; + } + + for(int i=1;i<=qu;i++) + { + printf("%d\n", result[i]); + } + + return 0; +} \ No newline at end of file diff --git a/spoj/KQUERY.cpp b/spoj/KQUERY.cpp new file mode 100644 index 0000000..e65a395 --- /dev/null +++ b/spoj/KQUERY.cpp @@ -0,0 +1,112 @@ +//using BIT and offline query : individual property of elements in the query + +#include +using namespace std; +#define SIZE 30005 + +int BIT[SIZE]; +int n,qu; + +struct kquery +{ + int l; + int r; + int k; + int num; +}q[200005]; + +struct num +{ + int index; + int val; +}a[SIZE]; + +bool cmp(num a, num b) +{ + return a.val>b.val; +} + +bool cmp1(kquery a,kquery b) +{ + if(a.k==b.k) + { + return a.r>b.r; + } + return a.k>b.k; +} + +void update(int x,int val) +{ + for(;x<=n;x+=x&-x) + { + BIT[x]+=val; + } +} + +int query(int x) +{ + int sum=0; + for(;x>0;x-=x&-x) + { + sum+=BIT[x]; + } + return sum; +} + +int main() +{ + scanf("%d",&n); + + for(int i=1;i<=n;i++) + { + scanf("%d",&a[i].val); + a[i].index=i; + BIT[i]=0; + } + sort(a+1,a+1+n,cmp); + + scanf("%d",&qu); + + int result[qu+5]; + + for(int i=1;i<=qu;i++) + { + scanf("%d %d %d",&q[i].l,&q[i].r,&q[i].k); + q[i].num=i; + } + + sort(q+1,q+1+qu,cmp1); + + /*for(int i=1;i<=n;i++) + { + printf("%d %d\n",a[i].val, a[i].index); + }*/ +/* + for(int i=1;i<=qu;i++) + { + printf("%d %d %d %d\n",q[i].l,q[i].r,q[i].k,q[i].num); + }*/ + + int j=1; + for(int i=1;i<=qu;i++) + { + while(j<=n && a[j].val>q[i].k) + { + update(a[j].index,1); /*marking the contribution of a number at a time + for all the queries that is being and are not yet + dealt with as the queries are in descending order*/ + j++; + } + result[q[i].num]=query(q[i].r)-query(q[i].l-1); + } + + /*for(int i=1;i<=n;i++) + { + printf("%d\n", query(i)); + }*/ + for(int i=1;i<=qu;i++) + { + printf("%d\n", result[i]); + } + return 0; +} \ No newline at end of file diff --git a/spoj/KQUERYMOtry b/spoj/KQUERYMOtry new file mode 100755 index 0000000000000000000000000000000000000000..856c42ab6334cde1b5ac61a22a80747532e36d82 GIT binary patch literal 22456 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 +using namespace std; + +// #define ll long long +#define SIZE 30005 + +struct elements +{ + int value; + int index; +}; + +elements arr[SIZE]; + +// pair arr[SIZE]; + +struct cmp +{ + bool operator()(elements a, elements b) const + { + return a.value=l && arr[i].index<=r &&arr[i].value>k) s++; + } + + if(lblock!=rblock) + { + for(int i=rstart; i=l && arr[i].index<=r && arr[i].value>k) s++; + } + for(int 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 lVPOyz{k!F1ql +using namespace std; +#define SIZE 30005 +#define ll long long +int n,qu; + +int a[SIZE]; + +struct kqueryo +{ + int l,r; + ll k; +}q[200005]; + +struct trees +{ + vector v; + // int count; +}; + +trees tree[300005<<3]; + +/*trees merges(trees a,trees b) +{ + trees res; + merge(a.v.begin(), a.v.end(),b.v.begin(), b.v.end(),res.v.begin()); + // res.count=a.count+b.count; + return res; +}*/ + +void build(int node,int start,int end) +{ + if(start==end) + { + tree[node].v.push_back(a[start]); + // tree[node].count=0; + return ; + } + int mid=start+end>>1; + build(2*node,start,mid); + build(2*node+1,mid+1,end); + tree[node].v.resize(tree[2*node].v.size()+tree[2*node+1].v.size()); + merge(tree[2*node].v.begin(),tree[2*node].v.end(),tree[2*node+1].v.begin(),tree[2*node+1].v.end(),tree[node].v.begin()); +} + +/* + +without sorting the elements in the vectors + +void update(int node, int start, int end, int l, int r, int k) +{ + if(start>end || start>r || l>end) + return; + if(start==end) + { + if(tree[node].v[0]>k) + tree[node].count=1; + else + tree[node].count=0; + return; + } + int mid=start+end>>1; + if(r<=mid) update(2*node,start,mid,l,r,k); + else if(l>mid) update(2*node+1,mid+1,end,l,r,k); + else + { + update(2*node,start,mid,l,r,k); + update(2*node+1,mid+1,end,l,r,k); + } + tree[node]=merge(tree[2*node],tree[2*node+1]); +}*/ + +int query(int node,int start, int end, int l, int r,int k) +{ + if(start>end || r>1; + return query(2*node,start,mid,l,r,k)+query(2*node+1,mid+1,end,l,r,k); +} + +int main() +{ + int s=0; + scanf("%d", &n); + for(int i=1;i<=n;i++) + { + scanf("%d",&a[i]); + } + + build(1,1,n); + + scanf("%d",&qu); + for(int i=1;i<=qu;i++) + { + int a,b; + ll c; + scanf("%d%d%lld",&a,&b,&c); + q[i].l=a^s; + q[i].r=b^s; + q[i].k=c^s; + + if(q[i].l<1) q[i].l=1; + if(q[i].r>n) q[i].r=n; + + if(q[i].l>q[i].r) s=0; + else + { + // update(1,1,n,q[i].l,q[i].r,q[i].k); + s=query(1,1,n,q[i].l,q[i].r,q[i].k); + } + printf("%d\n", s); + } +} \ No newline at end of file diff --git a/spoj/KQUERYOMo b/spoj/KQUERYOMo new file mode 100755 index 0000000000000000000000000000000000000000..90a7217e426b91390d4a2775071b390be5715678 GIT binary patch literal 21984 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